37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using LCU.API.Internal.Operations.IncentiveApiLib.Persistence;
|
|
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace LCU.API.Internal.Operations.IncentiveApiLib.Repositories;
|
|
|
|
public class AccountingRepository : BaseRepository, IAccountingRepository
|
|
{
|
|
public AccountingRepository(IApplicationDbContext context) : base(context)
|
|
{
|
|
}
|
|
|
|
public async Task<AccountingSummary> SaveAccountingSummaryAsync(AccountingSummary summary)
|
|
{
|
|
await _context.DepartmentLineItems.AddRangeAsync(summary.DepartmentPayouts);
|
|
return summary;
|
|
}
|
|
|
|
public async Task<AccountingSummary> GetAccountingSummaryAsync(DateTime payoutPeriod)
|
|
{
|
|
var rows = await _context.DepartmentLineItems.Where(x => x.PayoutMonth.Date == payoutPeriod.Date).ToListAsync();
|
|
|
|
if (rows != null && rows.Any())
|
|
{
|
|
var summary = new AccountingSummary(payoutPeriod);
|
|
summary.DepartmentPayouts = rows;
|
|
summary.Total = summary.DepartmentPayouts.Sum(x => x.PayoutTotal);
|
|
return summary;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|