Files
Backend-Api/CompanyManagment.EFCore/Repository/RollCallPlanRepository.cs
2024-07-09 19:31:25 +03:30

66 lines
2.2 KiB
C#

using System.Collections.Generic;
using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.RollCallPlanAgg;
using CompanyManagment.App.Contracts.RollCallPlan;
namespace CompanyManagment.EFCore.Repository;
public class RollCallPlanRepository : RepositoryBase<long, RollCallPlan>, IRollCallPlanRepository
{
private readonly CompanyContext _context;
public RollCallPlanRepository(CompanyContext context) : base(context)
{
_context = context;
}
public List<RollCallPlanViewModel> GetAll()
{
return _context.RollCallPlans.Select(x => new RollCallPlanViewModel()
{
Id = x.id,
FinalAmountDouble = x.FinalAmont,
FinalAmountStr = x.FinalAmont.ToMoneyToman(),
FinalAmountRoundStr = (x.FinalAmont.RoundMoney()).ToMoneyToman(),
MaxPersonValid = x.MaxPersonValid
}).ToList();
}
public List<RollCallPlanViewModel> GetSelectedPlans()
{
var activePlans = new List<int>()
{
5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 70, 100, 150, 200, 250, 300, 350, 400, 450, 500,
};
var query = _context.RollCallPlans.Select(x => new RollCallPlanViewModel()
{
Id = x.id,
FinalAmountDouble = x.FinalAmont,
FinalAmountStr = x.FinalAmont.ToMoneyToman(),
FinalAmountRoundStr = "",
MaxPersonValid = x.MaxPersonValid
}).Where(x => activePlans.Contains(x.MaxPersonValid));
return query.Select(x => new RollCallPlanViewModel()
{
Id = x.Id,
FinalAmountDouble = x.FinalAmountDouble,
FinalAmountStr = x.FinalAmountStr,
FinalAmountRoundStr = (x.FinalAmountDouble.RoundMoney()).ToMoneyToman(),
MaxPersonValid = x.MaxPersonValid
}).ToList();
}
public RollCallPlanViewModel GetByMaxPersonValid(int maxPerson)
{
return _context.RollCallPlans.Select(x => new RollCallPlanViewModel()
{
Id = x.id,
FinalAmountStr = x.FinalAmont.ToMoney(),
MaxPersonValid = x.MaxPersonValid,
FinalAmountDouble = x.FinalAmont,
}).FirstOrDefault(x=>x.MaxPersonValid == maxPerson);
}
}