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

153 lines
6.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.InsuranceJobAndJobsAgg;
using Company.Domain.InsuranceJobItemAgg;
using CompanyManagment.App.Contracts.InsuranceJobItem;
using CompanyManagment.App.Contracts.Job;
namespace CompanyManagment.EFCore.Repository;
public class InsuranceJobItemRepository : RepositoryBase<long, InsuranceJobItem>, IInsuranceJobItemRepositpry
{
private readonly CompanyContext _context;
public InsuranceJobItemRepository(CompanyContext context) : base(context)
{
_context = context;
}
public void CreateInsuranceJobItem(InsuranceJobItemViewModel model)
{
InsuranceJobItem incuranceJobItemObj = new InsuranceJobItem(model.PercentageLessThan, model.SalaeyLessThan,
model.PercentageMoreThan, model.SalaryMoreThan, model.InsuranceJobId);
_context.InsuranceJobItems.Add(incuranceJobItemObj);
_context.SaveChanges();
List<InsuranceJobAndJobs> insuranceJobAndJobsList = new List<InsuranceJobAndJobs>();
foreach (var item in model.JobIds)
{
var insuranceJobAndJobsObj = new InsuranceJobAndJobs();
insuranceJobAndJobsObj.JobId = item;
insuranceJobAndJobsObj.InsuranceJobItemId = incuranceJobItemObj.id;
insuranceJobAndJobsList.Add(insuranceJobAndJobsObj);
}
_context.InsuranceJobAndJobsSet.AddRange(insuranceJobAndJobsList);
_context.SaveChanges();
}
public DetailsInsuranceJobItem GetDetails(long id)
{
throw new NotImplementedException();
}
public List<InsuranceJobItemViewModel> GetInsuranceJobItemByInsuranceJobId(long Id)
{
//var list = _context.InsuranceJobItems.Where(x => x.InsuranceJobId == Id).ToList().Select(x=>new InsuranceJobItemViewModel()
//{
// Id =x.id,
// PercentageLessThan=x.PercentageLessThan,
// PercentageMoreThan=x.PercentageMoreThan,
// SalaeyLessThan=x.SalaeyLessThan,
// SalaryMoreThan = x.SalaryMoreThan,
// SalaeyLessThanString = x.SalaryMoreThan.ToMoney(),
// SalaryMoreThanString = x.SalaryMoreThan.ToMoney(),
// InsuranceJobId = x.InsuranceJobId,
// JobIds = _context.InsuranceJobAndJobsSet.Where(p => p.InsuranceJobItemId == x.id).Select(p=>p.JobId).ToList()
//});
//var insuranceJobItemIds = _context.InsuranceJobAndJobsSet.Where(x => x.JobId == Id).Select(x=>x.InsuranceJobItemId).ToList();
//var insuranceJobItems = _context.InsuranceJobItems.Where(x => insuranceJobItemIds.Contains(x.InsuranceJobId)).ToList();
//var list = new List<InsuranceJobItemViewModel>();
//foreach (var item in insuranceJobItems)
//{
// var obj = new InsuranceJobItemViewModel();
// obj.Id = item.id;
// obj.PercentageLessThan = item.PercentageLessThan;
// obj.PercentageMoreThan = item.PercentageMoreThan;
// obj.SalaeyLessThan = item.SalaeyLessThan;
// obj.SalaryMoreThan = item.SalaryMoreThan;
// obj.SalaeyLessThanString = item.SalaryMoreThan.ToMoney();
// obj.SalaryMoreThanString = item.SalaryMoreThan.ToMoney();
// obj.InsuranceJobId = item.InsuranceJobId;
// obj.JobIds = _context.InsuranceJobAndJobsSet.Where(p => p.InsuranceJobItemId == item.id)
// .Select(p => p.JobId).ToList();
// obj.JobList = _context.Jobs.Where(x => obj.JobIds.Contains(x.id)).ToList().Select(x =>
// new JobViewModel()
// {
// Id = x.id,
// JobName = x.JobName,
// JobCode = x.JobCode,
// }).ToList();
// list.Add(obj);
//}
var insuranceJobItems = _context.InsuranceJobItems.Where(x => x.InsuranceJobId == Id).ToList();
var list = new List<InsuranceJobItemViewModel>();
foreach (var item in insuranceJobItems)
{
var obj = new InsuranceJobItemViewModel();
obj.Id = item.id;
obj.PercentageLessThan = item.PercentageLessThan;
obj.PercentageMoreThan = item.PercentageMoreThan;
obj.SalaeyLessThan = item.SalaeyLessThan;
obj.SalaryMoreThan = item.SalaryMoreThan;
obj.SalaeyLessThanString = item.SalaryMoreThan.ToMoney();
obj.SalaryMoreThanString = item.SalaryMoreThan.ToMoney();
obj.InsuranceJobId = item.InsuranceJobId;
obj.JobIds = _context.InsuranceJobAndJobsSet.Where(p => p.InsuranceJobItemId == item.id)
.Select(p => p.JobId).ToList();
obj.JobList = _context.Jobs.Where(x => obj.JobIds.Contains(x.id)).ToList().Select(x =>
new JobViewModel()
{
Id = x.id,
JobName = x.JobName,
JobCode = x.JobCode,
}).ToList();
list.Add(obj);
}
return list.ToList();
}
public InsuranceJobItemViewModel GetInsuranceJobItemByInsuranceJobIdForFixedSalary(long insuranceJobId, long jobId)
{
var insuranceJobItemViewModel = new InsuranceJobItemViewModel();
var insuranceJobItems = _context.InsuranceJobItems.Where(x => x.InsuranceJobId == insuranceJobId).ToList();
var insuranceJobItemIds = insuranceJobItems.Select(x => x.id).ToList();
var jobAndJob = _context.InsuranceJobAndJobsSet
.Where(x => insuranceJobItemIds.Contains(x.InsuranceJobItemId) && x.JobId == jobId).FirstOrDefault();
if (jobAndJob != null)
{
var item = insuranceJobItems.Where(x => x.id == jobAndJob.InsuranceJobItemId).FirstOrDefault();
insuranceJobItemViewModel.Id = item.id;
insuranceJobItemViewModel.PercentageLessThan = item.PercentageLessThan;
insuranceJobItemViewModel.PercentageMoreThan = item.PercentageMoreThan;
insuranceJobItemViewModel.SalaeyLessThan = item.SalaeyLessThan;
insuranceJobItemViewModel.SalaryMoreThan = item.SalaryMoreThan;
insuranceJobItemViewModel.SalaeyLessThanString = item.SalaryMoreThan.ToMoney();
insuranceJobItemViewModel.SalaryMoreThanString = item.SalaryMoreThan.ToMoney();
insuranceJobItemViewModel.InsuranceJobId = item.InsuranceJobId;
}
return insuranceJobItemViewModel;
}
public List<InsuranceJobItemViewModel> Search(InsuranceJobItemSearchModel searchModel)
{
throw new NotImplementedException();
}
}