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, IRollCallPlanRepository { private readonly CompanyContext _context; public RollCallPlanRepository(CompanyContext context) : base(context) { _context = context; } public List 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 GetSelectedPlans() { var activePlans = new List() { 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); } }