Files
2026-03-17 09:53:09 -05:00

47 lines
1.7 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApiLib.Persistence;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using Microsoft.EntityFrameworkCore;
namespace LCU.API.Internal.Operations.IncentiveApiLib.Repositories;
public class ActivityTransferActionRepository : BaseRepository, IActivityTransferActionRepository
{
public ActivityTransferActionRepository(IApplicationDbContext context) : base(context)
{
}
public async Task<int> SaveTransferAsync(ActivityTransferAction activityTransferAction)
{
await _context.ActivityTransferActions.AddAsync(activityTransferAction);
return activityTransferAction.Id;
}
public async Task<ActivityTransferAction> GetTransferActionById(int id)
{
return await _context.ActivityTransferActions
.Include(x => x.RequestedActivity)
.FirstOrDefaultAsync(x => x.Id == id);
}
public async Task<ActivityTransferAction> GetRequestedTransferActionByActivityId(int requestedActivityId)
{
return await _context.ActivityTransferActions
.FirstOrDefaultAsync(x => x.RequestedActivityId == requestedActivityId
&& x.State == ActivityTransferState.Requested);
}
public async Task<IReadOnlyCollection<ActivityTransferAction>> GetActiveTransfersForStateAsync(
ActivityState state)
{
return await _context.ActivityTransferActions
.Include(x => x.RequestedActivity)
.Where(x => x.ActivityStateBeforeTransfer == state
&& x.State == ActivityTransferState.Requested)
.ToListAsync();
}
}