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

141 lines
5.1 KiB
C#

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<long, WorkingHours>, 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<WorkingHoursViewModel> 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();
}
}
}