Files
Backend-Api/CompanyManagment.EFCore/Repository/InsuranceYearlySalaryRepository.cs
2024-07-05 21:36:15 +03:30

270 lines
8.8 KiB
C#

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<long, InsuranceYearlySalary> , 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<InsuranceYearlySalaryViewModel> 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;
}
}
}