using System; using System.Collections.Generic; using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.InsuranceYearlySalaryAgg; using CompanyManagment.App.Contracts.InsuranceYearlySalary; namespace CompanyManagment.EFCore.Repository; public class InsuranceYearlySalaryRepository : RepositoryBase , IInsuranceYearlySalaryRepository { private readonly CompanyContext _context; public InsuranceYearlySalaryRepository(CompanyContext context) : base(context) { _context = context; } public EditInsuranceYearlySalary GetDetails(long id) { return _context.InsuranceYearlySalaries.Select(x => new EditInsuranceYearlySalary() { Id = x.id, StartDateFa = x.StartDate.ToFarsi(), EndDateFa = x.EndDate.ToFarsi(), Group1 = x.Group1, Group2 = x.Group2, Group3 = x.Group3, Group4 = x.Group4, Group5 = x.Group5, Group6 = x.Group6, Group7 = x.Group7, Group8 = x.Group8, Group9 = x.Group9, Group10 = x.Group10, Group11 = x.Group11, Group12 = x.Group12, Group13 = x.Group13, Group14 = x.Group14, Group15 = x.Group15, Group16 = x.Group16, Group17 = x.Group17, Group18 = x.Group18, Group19 = x.Group19, Group20 = x.Group20, Group21 = x.Group21, Group22 = x.Group22, Group23 = x.Group23, Group24 = x.Group24, Group25 = x.Group25, Group26 = x.Group26, Group27 = x.Group27, Group28 = x.Group28, Group29 = x.Group29, Group30 = x.Group30, Group1Str = x.Group1.ToMoney(), Group2Str = x.Group2.ToMoney(), Group3Str = x.Group3.ToMoney(), Group4Str = x.Group4.ToMoney(), Group5Str = x.Group5.ToMoney(), Group6Str = x.Group6.ToMoney(), Group7Str = x.Group7.ToMoney(), Group8Str = x.Group8.ToMoney(), Group9Str = x.Group9.ToMoney(), Group10Str = x.Group10.ToMoney(), Group11Str = x.Group11.ToMoney(), Group12Str = x.Group12.ToMoney(), Group13Str = x.Group13.ToMoney(), Group14Str = x.Group14.ToMoney(), Group15Str = x.Group15.ToMoney(), Group16Str = x.Group16.ToMoney(), Group17Str = x.Group17.ToMoney(), Group18Str = x.Group18.ToMoney(), Group19Str = x.Group19.ToMoney(), Group20Str = x.Group20.ToMoney(), Group21Str = x.Group21.ToMoney(), Group22Str = x.Group22.ToMoney(), Group23Str = x.Group23.ToMoney(), Group24Str = x.Group24.ToMoney(), Group25Str = x.Group25.ToMoney(), Group26Str = x.Group26.ToMoney(), Group27Str = x.Group27.ToMoney(), Group28Str = x.Group28.ToMoney(), Group29Str = x.Group29.ToMoney(), Group30Str = x.Group30.ToMoney(), }).FirstOrDefault(x => x.Id == id); } public List Search(InsuranceYearlySalarySearchModel searchModel) { var query = _context.InsuranceYearlySalaries.Select(x => new InsuranceYearlySalaryViewModel() { Id = x.id, StartDateFa = x.StartDate.ToFarsi(), EndDateFa = x.EndDate.ToFarsi(), Year = x.Year, YearSt = Convert.ToString(x.Year), Group1Str = x.Group1.ToMoney(), Group2Str = x.Group2.ToMoney(), Group3Str = x.Group3.ToMoney(), Group4Str = x.Group4.ToMoney(), Group5Str = x.Group5.ToMoney(), Group6Str = x.Group6.ToMoney(), Group7Str = x.Group7.ToMoney(), Group8Str = x.Group8.ToMoney(), Group9Str = x.Group9.ToMoney(), Group10Str = x.Group10.ToMoney(), Group11Str = x.Group11.ToMoney(), Group12Str = x.Group12.ToMoney(), Group13Str = x.Group13.ToMoney(), Group14Str = x.Group14.ToMoney(), Group15Str = x.Group15.ToMoney(), Group16Str = x.Group16.ToMoney(), Group17Str = x.Group17.ToMoney(), Group18Str = x.Group18.ToMoney(), Group19Str = x.Group19.ToMoney(), Group20Str = x.Group20.ToMoney(), Group21Str = x.Group21.ToMoney(), Group22Str = x.Group22.ToMoney(), Group23Str = x.Group23.ToMoney(), Group24Str = x.Group24.ToMoney(), Group25Str = x.Group25.ToMoney(), Group26Str = x.Group26.ToMoney(), Group27Str = x.Group27.ToMoney(), Group28Str = x.Group28.ToMoney(), Group29Str = x.Group29.ToMoney(), Group30Str = x.Group30.ToMoney(), }); if (!string.IsNullOrWhiteSpace(searchModel.YearSt)) query = query.Where(x => x.YearSt == searchModel.YearSt); return query.OrderByDescending(x => x.Year).ToList(); } public OperationResult RemoveClassifiedSalary(long id) { var op = new OperationResult(); var res = _context.InsuranceYearlySalaries.FirstOrDefault(x => x.id == id); if (res != null) { _context.InsuranceYearlySalaries.Remove(res); _context.SaveChanges(); return op.Succcedded(); } else { return op.Failed("خطا در حذف"); } } public double GetBaseYearByDate(DateTime startDate, int years) { if (years == 0) return 0; var query = _context.InsuranceYearlySalaries.FirstOrDefault(x => x.StartDate <= startDate && x.EndDate > startDate); if (query != null) { double result = 0; switch (years) { case 1: result = query.Group1; break; case 2: result = query.Group2; break; case 3: result = query.Group3; break; case 4: result = query.Group4; break; case 5: result = query.Group5; break; case 6: result = query.Group6; break; case 7: result = query.Group7; break; case 8: result = query.Group8; break; case 9: result = query.Group9; break; case 10: result = query.Group10; break; case 11: result = query.Group11; break; case 12: result = query.Group12; break; case 13: result = query.Group13; break; case 14: result = query.Group14; break; case 15: result = query.Group15; break; case 16: result = query.Group16; break; case 17: result = query.Group17; break; case 18: result = query.Group18; break; case 19: result = query.Group19; break; case 20: result = query.Group20; break; case 21: result = query.Group21; break; case 22: result = query.Group22; break; case 23: result = query.Group23; break; case 24: result = query.Group24; break; case 25: result = query.Group25; break; case 26: result = query.Group26; break; case 27: result = query.Group27; break; case 28: result = query.Group28; break; case 29: result = query.Group29; break; case 30: result = query.Group30; break; } return result; } else { return 0; } } }