Files
FA_WEB/FaKrosnoEfDataModel/Services/ScheduleOrderService.cs
Piotr Kus 94c4586c35 * Additional Functions added to services
* Changes in MaterialTransaction mapping
2025-04-02 21:25:13 +02:00

60 lines
2.6 KiB
C#

using AutoMapper;
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Entities;
using FaKrosnoEfDataModel.Queries;
using Microsoft.EntityFrameworkCore;
namespace FaKrosnoEfDataModel.Services
{
public class ScheduleOrderService : ServiceBase<ScheduleOrderDto>, IScheduleOrderService
{
public ScheduleOrderService(FaKrosnoDbContext context, IMapper mapper) : base(context, mapper)
{
}
public override async Task<ScheduleOrderDto?> GetById(int id)
{
var scheduleOrder = await Task.FromResult(ScheduleOrderQueries.GetById(Context, id));
return scheduleOrder != null ? Mapper.Map<ScheduleOrderDto>(scheduleOrder) : null;
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientId(int recipientId)
{
IList<ScheduleOrderDto> scheduleOrders = (await GetAll()).ToList();
return scheduleOrders.Where(x => x?.RecipientID == recipientId);
}
public async Task<IList<ScheduleOrderDto>> GetByPurchaserId(int purchaserId)
{
return await Context.ScheduleOrders.Include(x => x.Recipient).ThenInclude(x => x.Purchaser)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailMiscs)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailDetails)
.Where(x => x.Recipient.Purchaser.ID == purchaserId).Select(x => Mapper.Map<ScheduleOrderDto>(x))
.ToListAsync();
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientAndLastUpdateDate(int recipientId, DateTime date)
{
IList<ScheduleOrderDto?> scheduleOrders = (await GetEntitiesByLastUpdateDate(date)).ToList();
return scheduleOrders.Where(x => x?.RecipientID == recipientId && x.LastUpdateDate >= date);
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetEntities()
{
IList<ScheduleOrder> scheduleOrders = await Context.ScheduleOrders.Include(x => x.ScheduleOrderDetails).Include(x => x.Recipient)
.ThenInclude(x => x.Purchaser).ToListAsync();
return Mapper.Map<IEnumerable<ScheduleOrderDto>>(scheduleOrders);
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetEntitiesByLastUpdateDate(DateTime date)
{
IList<ScheduleOrder?> scheduleOrders =
(await Task.FromResult(ScheduleOrderQueries.GetEntitiesByDate(Context, date))).ToList();
return Mapper.Map<IEnumerable<ScheduleOrderDto>>(scheduleOrders);
}
}
}