public async Task <OperationDataResult <RentableItemsModel> > Index(RentableItemsRequestModel pnRequestModel) { try { RentableItemsModel rentableItemsPnModel = new RentableItemsModel(); IQueryable <RentableItem> rentableItemsQuery = _dbContext.RentableItem. Where(x => x.WorkflowState != Constants.WorkflowStates.Removed).AsQueryable(); if (!CollectionExtensions.IsNullOrEmpty(pnRequestModel.NameFilter) && pnRequestModel.NameFilter != "") { rentableItemsQuery = rentableItemsQuery.Where(x => x.Brand.ToLower().Contains(pnRequestModel.NameFilter.ToLower()) || x.VinNumber.ToLower().Contains(pnRequestModel.NameFilter.ToLower()) || x.SerialNumber.ToLower().Contains(pnRequestModel.NameFilter.ToLower()) || x.PlateNumber.ToLower().Contains(pnRequestModel.NameFilter.ToLower()) || x.ModelName.ToLower().Contains(pnRequestModel.NameFilter.ToLower())); } if (!string.IsNullOrEmpty(pnRequestModel.Sort)) { if (pnRequestModel.IsSortDsc) { rentableItemsQuery = rentableItemsQuery.CustomOrderByDescending(pnRequestModel.Sort); } else { rentableItemsQuery = rentableItemsQuery.CustomOrderBy(pnRequestModel.Sort); } } rentableItemsPnModel.Total = rentableItemsQuery.Count(x => x.WorkflowState != Constants.WorkflowStates.Removed); rentableItemsQuery = rentableItemsQuery .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .Skip(pnRequestModel.Offset) .Take(pnRequestModel.PageSize); List <RentableItem> rentableItems = await rentableItemsQuery.ToListAsync(); rentableItems.ForEach(rentableItem => { rentableItemsPnModel.RentableItems.Add(new RentableItemModel { VinNumber = rentableItem.VinNumber, RegistrationDate = rentableItem.RegistrationDate, Brand = rentableItem.Brand, PlateNumber = rentableItem.PlateNumber, ModelName = rentableItem.ModelName, SerialNumber = rentableItem.SerialNumber, Id = rentableItem.Id, EFormId = rentableItem.eFormId, FullName = $"{rentableItem.Brand} - {rentableItem.ModelName} - {rentableItem.SerialNumber} - {rentableItem.VinNumber} - {rentableItem.PlateNumber}" }); }); return(new OperationDataResult <RentableItemsModel>(true, rentableItemsPnModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <RentableItemsModel>(true, _rentableItemsLocalizationService.GetString("ErrorObtainingRentableItemsInfo"))); } }
public Task <OperationDataResult <RentableItemsModel> > Index(RentableItemsRequestModel requestModel) { return(_rentableItemsService.Index(requestModel)); }