using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.API.Internal.Operations.IncentiveApiLib.Persistence; using Microsoft.EntityFrameworkCore; namespace LCU.API.Internal.Operations.IncentiveApiLib.Repositories; public class UserPermissionHistoryRepository : BaseRepository, IUserPermissionHistoryRepository { public UserPermissionHistoryRepository(IApplicationDbContext context) : base(context) { } public async Task> SaveUserPermissionsInsertion(IEnumerable newPermissions) { var newPermissionHistory = newPermissions.Select(userPermission => new UserPermissionHistory { Id = 0, Source = "Manual Assignment", EmployeeId = Convert.ToInt32(userPermission.AppUser.EmployeeId), Permission = userPermission.Permission.Code, PermissionAdded = true }) .ToList(); await _context.UserPermissionHistories.AddRangeAsync(newPermissionHistory); return newPermissionHistory; } public async Task> SaveUserPermissionsDeletion(IEnumerable newPermissions) { var newPermissionHistory = newPermissions.Select(userPermission => new UserPermissionHistory { Id = 0, Source = "Manual Assignment", EmployeeId = Convert.ToInt32(userPermission.AppUser.EmployeeId), Permission = userPermission.Permission.Code, PermissionRemoved = true }) .ToList(); await _context.UserPermissionHistories.AddRangeAsync(newPermissionHistory); return newPermissionHistory; } public async Task> GetUserPermissionHistory(int employeeId) { return await _context.UserPermissionHistories.Where(history => history.EmployeeId == employeeId).ToListAsync(); } }