public async Task <IActionResult> Get([FromQuery] EmployeeLeavesSearchParameters parametrs) { var leave = await _employeeLeaveService.Get(parametrs); if (leave == null) { return(NotFound()); } return(Ok(leave)); }
public async Task <List <EmployeeLeavesViewResult> > Get(EmployeeLeavesSearchParameters parametrs) { var query = _dbContext.EmployeeLeaves .Include(l => l.Employee) .AsQueryable(); if (parametrs.EmployeeId.HasValue) { query = query.Where(c => c.EmployeeId == parametrs.EmployeeId); } if (parametrs.CategoryId.HasValue) { query = query.Where(c => c.CategoryId == parametrs.CategoryId); } if (parametrs.StartDate.HasValue) { query = query.Where(c => c.StartDate.Equals(parametrs.StartDate)); } if (parametrs.EndDate.HasValue) { query = query.Where(c => c.EndDate.Equals(parametrs.EndDate)); } if (parametrs.Status.HasValue) { query = query.Where(c => c.Status.Equals(parametrs.Status)); } var employeeLeaves = await query.ToListAsync(); if (employeeLeaves.Count == 0) { return(null); } List <EmployeeLeavesViewResult> employeeLeaveViews = new List <EmployeeLeavesViewResult>(); foreach (var leave in employeeLeaves) { employeeLeaveViews.Add(new EmployeeLeavesViewResult { EmployeeName = leave.Employee?.Name, StartDate = leave.StartDate, EndDate = leave.EndDate, Duration = leave.Duration, RejectReason = leave.RejectReason, AttachmentFile = leave.AttachmentFile, Status = leave.Status }); } return(employeeLeaveViews); }