public async Task <PaginatedList <WorkLog> > GetWorkLogs(WorkLogQuery filters, string userId) { var workLogs = _context.WorkLogs .Where(wl => (wl.EmployeeId == userId || wl.EmployerId == userId)) .Include(wl => wl.Employee) .Include(wl => wl.Employer) .AsQueryable(); if (filters.StartDate.HasValue) { workLogs = workLogs.Where(wl => wl.CreatedDate > filters.StartDate); } if (filters.EndDate.HasValue) { workLogs = workLogs.Where(wl => wl.CreatedDate < filters.EndDate); } if (!string.IsNullOrEmpty(filters.FilterId)) { workLogs = workLogs.Where( wl => (wl.EmployeeId == filters.FilterId || wl.EmployerId == filters.FilterId)); } if (filters.Status.HasValue) { workLogs = workLogs.Where(wl => wl.Status == filters.Status); } workLogs = workLogs.AsNoTracking(); return(PaginatedList <WorkLog> .Create(workLogs, filters.Page ?? 1, 20)); }
public async Task <IActionResult> GetWorkLogs(WorkLogQuery filters) { var userId = User.FindFirst(ClaimTypes.Sid).Value; var workLogs = await _workLogService.GetWorkLogs(filters, userId); return(Ok(_mapper.Map <PaginatedList <WorkLog>, PaginatedListDto <WorkLogDto> >(workLogs))); }
public IQueryable <WorkLog> Where(WorkLogQuery queries) { if (!string.IsNullOrEmpty(queries.UserId)) { var userId = Guid.Parse(queries.UserId); return(Where(x => x.EntityStatus == EntityStatus.Activated && x.UserId == userId)); } return(Where(x => x.EntityStatus == EntityStatus.Activated)); }
public async Task <PaginatedList <WorkLog> > GetWorkLogs(WorkLogQuery filters, string userId) { return(await _unitOfWork.WorkLogs.GetWorkLogs(filters, userId)); }