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, 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 insuranceJobAndJobsList = new List(); 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 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(); //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(); 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 Search(InsuranceJobItemSearchModel searchModel) { throw new NotImplementedException(); } }