12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using Microsoft.EntityFrameworkCore;
- using MTWorkHR.Core.Entities;
- using MTWorkHR.Core.IDto;
- using MTWorkHR.Core.IRepositories;
- using MTWorkHR.Infrastructure.Entities;
- using MTWorkHR.Infrastructure.DBContext;
- using MTWorkHR.Core.Entities.User;
- namespace MTWorkHR.Infrastructure.Repositories
- {
- public class OrderRequestRepository : Repository<OrderRequest>, IOrderRequestRepository
- {
- private readonly DbSet<OrderRequest> dbSet;
- public OrderRequestRepository(HRDataContext context) : base(context)
- {
- dbSet = context.Set<OrderRequest>();
- }
- public async Task<OrderRequest> GetByIdWithAllChildren(long id)
- {
- return await dbSet
- .Include(x => x.OrderType)
- .FirstOrDefaultAsync(x => x.Id == id);
- }
- public async Task<Tuple<IQueryable<OrderRequest>, int>> GetAllWithChildrenAsync()
- {
- var query = dbSet.Include(x => x.OrderType).Include(x=> x.LeaveType).AsQueryable();
- var total = await query.CountAsync();
- return new Tuple<IQueryable<OrderRequest>, int>(query, total);
- }
- public async Task<Tuple<IQueryable<OrderRequest>, int>> GetAllUserOrdersAsync(string userId, long contractId)
- {
- var query = dbSet.Include(x => x.OrderType).Include(x => x.LeaveType).Where(a=> a.RequestingEmployeeId == userId && a.ContractId == contractId).AsQueryable();
- var total = await query.CountAsync();
- return new Tuple<IQueryable<OrderRequest>, int>(query, total);
- }
- }
- }
|