Пример #1
0
        public async Task <IActionResult> Get([FromQuery] EmployeeLeavesSearchParameters parametrs)
        {
            var leave = await _employeeLeaveService.Get(parametrs);

            if (leave == null)
            {
                return(NotFound());
            }
            return(Ok(leave));
        }
Пример #2
0
        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);
        }