52 lines
1.8 KiB
C#
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);
|
|
}
|
|
} |