using System.Collections.Generic; using System.Linq; using _0_Framework.InfraStructure; using Company.Domain.WorkingHoursAgg; using CompanyManagment.App.Contracts.WorkingHours; using CompanyManagment.App.Contracts.WorkingHoursItems; using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; public class WorkingHoursRepository : RepositoryBase, IWorkingHoursRepository { private readonly CompanyContext _context; public WorkingHoursRepository(CompanyContext context) : base(context) { _context = context; } public EditWorkingHours GetDetails(long id) { return _context.WorkingHoursSet.Select(x => new EditWorkingHours { Id = x.id, ContractId = x.ContractId, ContractNo = x.ContractNo, NumberOfFriday = x.NumberOfFriday, NumberOfWorkingDays = x.NumberOfWorkingDays, ShiftWork = x.ShiftWork, TotalHoursesH = x.TotalHoursesH, TotalHoursesM = x.TotalHoursesM, OverNightWorkH = x.OverTimeWorkH, OverNightWorkM = x.OverNightWorkM, OverTimeWorkH = x.OverTimeWorkH, OverTimeWorkM = x.OverTimeWorkM, WeeklyWorkingTime = x.WeeklyWorkingTime, }) .FirstOrDefault(x => x.Id == id); } public List GetWorkingHours() { return _context.WorkingHoursSet.Select(x => new WorkingHoursViewModel { Id = x.id, ContractId = x.ContractId, ContractNo = x.ContractNo, NumberOfFriday = x.NumberOfFriday, NumberOfWorkingDays = x.NumberOfWorkingDays, ShiftWork = x.ShiftWork, TotalHoursesH = x.TotalHoursesH, TotalHoursesM = x.TotalHoursesM, OverNightWorkH = x.OverTimeWorkH, OverNightWorkM = x.OverNightWorkM, OverTimeWorkH = x.OverTimeWorkH, OverTimeWorkM = x.OverTimeWorkM, WeeklyWorkingTime = x.WeeklyWorkingTime, }) .ToList(); } public WorkingHoursViewModel GetByContractId(long id) { var workingHours = _context.WorkingHoursSet .Include(x => x.WorkingHoursItemsList) .FirstOrDefault(x => x.ContractId == id); var result = new WorkingHoursViewModel() { Id = workingHours.id, ContractId = workingHours.ContractId, ContractNo = workingHours.ContractNo, NumberOfFriday = workingHours.NumberOfFriday, NumberOfWorkingDays = workingHours.NumberOfWorkingDays, ShiftWork = workingHours.ShiftWork, TotalHoursesH = workingHours.TotalHoursesH, TotalHoursesM = workingHours.TotalHoursesM, OverNightWorkH = workingHours.OverTimeWorkH, OverNightWorkM = workingHours.OverNightWorkM, OverTimeWorkH = workingHours.OverTimeWorkH, OverTimeWorkM = workingHours.OverTimeWorkM, WeeklyWorkingTime = workingHours.WeeklyWorkingTime, WorkingHoursItemsList = workingHours.WorkingHoursItemsList.Select(x=> new WorkingHoursItemsViewModel() { Id = x.id, DayOfWork = x.DayOfWork, ComplexStart = x.ComplexStart, ComplexEnd = x.ComplexEnd, Start1 = x.Start1, End1 = x.End1, RestTime = x.RestTime, Start2 = x.Start2, End2 = x.End2, Start3 = x.Start3, End3 = x.End3, WorkingHoursId = x.WorkingHoursId, WeekNumber = x.WeekNumber }).ToList(), }; return result; //return _context.WorkingHoursSet.Select(x => new WorkingHoursViewModel //{ // Id = x.id, // ContractId = x.ContractId, // ContractNo = x.ContractNo, // NumberOfFriday = x.NumberOfFriday, // NumberOfWorkingDays = x.NumberOfWorkingDays, // ShiftWork = x.ShiftWork, // TotalHoursesH = x.TotalHoursesH, // TotalHoursesM = x.TotalHoursesM, // OverNightWorkH = x.OverTimeWorkH, // OverNightWorkM = x.OverNightWorkM, // OverTimeWorkH = x.OverTimeWorkH, // OverTimeWorkM = x.OverTimeWorkM, // WeeklyWorkingTime = x.WeeklyWorkingTime, //}) // .SingleOrDefault(x => x.ContractId == id); } public void removeWorkingHours(long id) { var item = _context.WorkingHoursSet.Include(x=>x.WorkingHoursItemsList).FirstOrDefault(x => x.ContractId == id); var subItem = item.WorkingHoursItemsList.ToList(); if (item != null) { foreach (var items in subItem) { _context.WorkingHoursItemsSet.Remove(items); } _context.WorkingHoursSet.Remove(item); _context.SaveChanges(); } } }