141 lines
5.1 KiB
C#
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();
|
|
}
|
|
|
|
}
|
|
} |