Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }