public async Task <ProcessPaginationResponseDto <ProcessSearchResponseDto> > Handle(SearchProcessesUserQuery request, CancellationToken cancellationToken) { //Get total number of sessions var totalNumberOfSessions = await _unitOfWork.Session.GetNumberOfSessinsForUser(_currentUser.UserId); //get paginated records and total nubmer of records var(records, count) = await _unitOfWork.Process.GetProcessesForUser(_currentUser.UserId, request.CurrentPage, _pagination.Take, request.SearchCriteria); //map var dto = new ProcessPaginationResponseDto <ProcessSearchResponseDto> { TotalRecords = count, TotalNumberOfSessions = totalNumberOfSessions, Records = records?.Adapt <IEnumerable <ProcessSearchResponseDto> >(), TotalPages = (int)Math.Ceiling((double)count / _pagination.Take) }; //success return(dto); }
public async Task <ProcessPaginationResponseDto <ProcessSearchResponseDto> > Handle(SearchProcessesPeriodQuery request, CancellationToken cancellationToken) { //NOTE _periodOptions.DaysBack is negative number. You can see concrete value in appsetings.json DateTime endOfPeriod = _date.Now.Date; DateTime startOfPeriod = endOfPeriod.AddDays(_periodOptions.DaysBack); //Get total number of sessions var totalNumberOfSessions = await _unitOfWork.Session.GetNumberOfSessinsForPeriod(startOfPeriod, endOfPeriod); //get paginated records and total nubmer of records var(records, count) = await _unitOfWork.Process.GetProcessesForPeriod(startOfPeriod, endOfPeriod, request.CurrentPage, _pagination.Take, request.SearchCriteria); //map var dto = new ProcessPaginationResponseDto <ProcessSearchResponseDto> { TotalRecords = count, TotalNumberOfSessions = totalNumberOfSessions, Records = records?.Adapt <IEnumerable <ProcessSearchResponseDto> >(), TotalPages = (int)Math.Ceiling((double)count / _pagination.Take) }; //success return(dto); }