public QuantityRecordsVm FindQuantityRecords(ReportPagedVm reportPagedVm) { var records = _tripRepository.FindAll(); var filteredRecords = FindAllByReportFilter(reportPagedVm, records).ToList(); var quantityRecordsVm = new QuantityRecordsVm { Quantity = filteredRecords.Count, Trips = filteredRecords }; return(quantityRecordsVm); }
public IActionResult GetAllFilteredAndPaged(ReportPagedVm reportPagedVm) { try { var travels = _tripService.FilteredAndPaged(reportPagedVm); return(Ok(travels)); } catch (Exception ex) { _logger.LogError(ex.HResult, ex.InnerException == null ? ex.Message : ex.InnerException.Message); return(BadRequest(ServiceResponseExtension.GenericResponse)); } }
public IActionResult GetQuantityRecords(ReportPagedVm reportPagedVm) { try { var quantity = _tripService.FindQuantityRecords(reportPagedVm).Quantity; return(Ok(quantity)); } catch (Exception ex) { _logger.LogError(ex.HResult, ex.InnerException == null ? ex.Message : ex.InnerException.Message); return(BadRequest(ServiceResponseExtension.GenericResponse)); } }
public PagedListVm FilteredAndPaged(ReportPagedVm reportPagedVm) { var page = reportPagedVm.Page > 0 ? reportPagedVm.Page : 1; var pageSize = reportPagedVm.PageSize > 0 ? reportPagedVm.PageSize : 10; var skip = (page - 1) * pageSize; var quantityRecordsVm = FindQuantityRecords(reportPagedVm); var rowCount = quantityRecordsVm.Quantity; var trips = quantityRecordsVm.Trips.ToList(); return(new PagedListVm { Page = page, PageSize = pageSize, RowCount = rowCount, Collection = trips.Skip(skip).Take(pageSize) }); }
public IQueryable <Trip> FindAllByReportFilter(ReportPagedVm reportPagedVm, IQueryable <Trip> trips) { if (reportPagedVm == null) { return(trips); } if (!string.IsNullOrWhiteSpace(reportPagedVm.CountryFilter)) { trips = trips.Where(t => t.Country.Name == reportPagedVm.CountryFilter); } if (!string.IsNullOrWhiteSpace(reportPagedVm.CityFilter)) { trips = trips.Where(t => t.City.Name == reportPagedVm.CityFilter); } if (!string.IsNullOrWhiteSpace(reportPagedVm.StatusFilter)) { trips = trips.Where(t => t.Status == reportPagedVm.StatusFilter); } return(trips); }