public async Task <OperationDataResult <RentableItemsModel> > Index(int contractId) { try { RentableItemsModel rentableItemsModel = new RentableItemsModel(); List <ContractRentableItem> itemContractsQuery = await _dbContext.ContractRentableItem.Where(x => x.ContractId == contractId && x.WorkflowState == Constants.WorkflowStates.Created).ToListAsync(); foreach (var rentableItemContract in itemContractsQuery) { RentableItemModel rentableItemModel = new RentableItemModel(); RentableItem rentableItem = await _dbContext.RentableItem.FirstOrDefaultAsync(y => y.Id == rentableItemContract.RentableItemId); rentableItemModel.Brand = rentableItem.Brand; rentableItemModel.VinNumber = rentableItem.VinNumber; rentableItemModel.RegistrationDate = rentableItem.RegistrationDate; rentableItemModel.PlateNumber = rentableItem.PlateNumber; rentableItemModel.ModelName = rentableItem.ModelName; rentableItemModel.SerialNumber = rentableItem.SerialNumber; rentableItemModel.Id = rentableItem.Id; rentableItemsModel.RentableItems.Add(rentableItemModel); rentableItemsModel.RentableItemIds.Add(rentableItemContract.RentableItemId); } return(new OperationDataResult <RentableItemsModel>(true, rentableItemsModel)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <RentableItemsModel>(false, "Could not find any rentable items")); } }
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"))); } }