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")));
            }
        }