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 SaveAccountingSummaryAsync(AccountingSummary summary) { await _context.DepartmentLineItems.AddRangeAsync(summary.DepartmentPayouts); return summary; } public async Task 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; } }