Files
Backend-Api/CompanyManagment.EFCore/Repository/RewardRepository.cs
2024-10-23 20:58:10 +03:30

52 lines
1.8 KiB
C#

using System.Collections.Generic;
using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.RewardAgg;
using CompanyManagment.App.Contracts.Reward;
namespace CompanyManagment.EFCore.Repository;
public class RewardRepository:RepositoryBase<long,Reward>, IRewardRepository
{
private readonly CompanyContext _companyContext;
public RewardRepository( CompanyContext companyContext) : base(companyContext)
{
_companyContext = companyContext;
}
public List<RewardSearchViewModel> GetSearchList(RewardSearchViewModel searchViewModel)
{
var query = _companyContext.Rewards.Where(x => x.WorkshopId == searchViewModel.WorkshopId);
if (searchViewModel.EmployeeId != 0)
query = query.Where(x => x.EmployeeId == searchViewModel.EmployeeId);
return query.Select(x => new RewardSearchViewModel()
{
Id = x.id,
WorkshopId = x.WorkshopId,
EmployeeId = x.EmployeeId,
EmployeeFullName = _companyContext.Employees.FirstOrDefault(e => e.id == x.EmployeeId).FullName,
PersonnelCode = _companyContext.PersonnelCodeSet.FirstOrDefault(p => p.EmployeeId == x.EmployeeId).PersonnelCode.ToString(),
Description = x.Description,
Amount = x.Amount.ToMoney(),
RewardedByAccountId = x.RewardedByAccountId,
CreationDate = x.CreationDate
}).OrderByDescending(x => x.CreationDate).Skip(searchViewModel.PageIndex).Take(30).ToList();
}
public EditRewardViewModel GetDetails(long id)
{
return _companyContext.Rewards.Select(x => new EditRewardViewModel()
{
Id = x.id,
WorkshopId = x.WorkshopId,
EmployeeId = x.EmployeeId,
Amount = x.Amount,
Description = x.Description,
IsActive = x.IsActive,
RewardedByAccountId = x.RewardedByAccountId
}).FirstOrDefault(x => x.Id == id);
}
}