private async Task <string[]> RefreshSubModelsFacet(VehicleToBedConfigSearchInputModel vehicleToBedConfigSearchInputModel)
        {
            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
                BedConfigId       = vehicleToBedConfigSearchInputModel.BedConfigId,
                StartYear         = Convert.ToInt32(vehicleToBedConfigSearchInputModel.StartYear),
                EndYear           = Convert.ToInt32(vehicleToBedConfigSearchInputModel.EndYear),
                Makes             = vehicleToBedConfigSearchInputModel.Makes,
                Models            = vehicleToBedConfigSearchInputModel.Models,
                VehicleTypes      = vehicleToBedConfigSearchInputModel.VehicleTypes,
                VehicleTypeGroups = vehicleToBedConfigSearchInputModel.VehicleTypeGroups,
                Regions           = vehicleToBedConfigSearchInputModel.Regions,
                BedLengths        = vehicleToBedConfigSearchInputModel.BedLengths,
                BedTypes          = vehicleToBedConfigSearchInputModel.BedTypes
            };

            var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                            new SearchOptions
            {
                FacetsToInclude = new List <string>
                {
                    "subModelName,count:1000",
                },
                RecordCount = 0
            });

            var vehicleToBedConfigSearchViewModel = _vehicleToBedConfigSearchViewModelMapper.Map(result);

            return(vehicleToBedConfigSearchViewModel.Facets.SubModels);
        }
        public async Task <VehicleToBedConfigSearchViewModel> SearchByBedConfigId(int bedConfigId)
        {
            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
                BedConfigId = bedConfigId,
            };
            var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                            new SearchOptions
            {
                FacetsToInclude = new List <string>
                {
                    "bedLength",
                    "bedTypeName",
                    "regionName",
                    "vehicleTypeName",
                    "vehicleTypeGroupName",
                    "makeName",
                    "modelName",
                    "subModelName",
                    "bedConfigId"
                },
                RecordCount = 1000
            });

            var bedConfigSearchViewModel = _vehicleToBedConfigSearchViewModelMapper.Map(result);

            return(bedConfigSearchViewModel);
        }
        private async Task <string[]> RefreshYearFacet(VehicleToBedConfigSearchInputModel vehicleToBedConfigSearchInputModel)
        {
            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
                BedConfigId       = vehicleToBedConfigSearchInputModel.BedConfigId,
                Regions           = vehicleToBedConfigSearchInputModel.Regions,
                VehicleTypeGroups = vehicleToBedConfigSearchInputModel.VehicleTypeGroups,
                VehicleTypes      = vehicleToBedConfigSearchInputModel.VehicleTypes,
                BedLengths        = vehicleToBedConfigSearchInputModel.BedLengths,
                BedTypes          = vehicleToBedConfigSearchInputModel.BedTypes
            };

            var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                            new SearchOptions
            {
                FacetsToInclude = new List <string>
                {
                    "yearId,count:1000",
                },
                RecordCount = 0
            });

            var vehicleToBedConfigSearchViewModel = _vehicleToBedConfigSearchViewModelMapper.Map(result);

            return(vehicleToBedConfigSearchViewModel.Facets.Years);
        }
        public async Task <List <VehicleToBedConfigViewModel> > GetAssociations(VehicleToBedConfigSearchInputModel vehicleToBedConfigSearchInputModel)
        {
            List <VehicleToBedConfigViewModel> vehicleToBedConfigs = new List <VehicleToBedConfigViewModel>();

            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
                BedConfigId       = vehicleToBedConfigSearchInputModel.BedConfigId,
                StartYear         = Convert.ToInt32(vehicleToBedConfigSearchInputModel.StartYear),
                EndYear           = Convert.ToInt32(vehicleToBedConfigSearchInputModel.EndYear),
                Makes             = vehicleToBedConfigSearchInputModel.Makes,
                Models            = vehicleToBedConfigSearchInputModel.Models,
                SubModels         = vehicleToBedConfigSearchInputModel.SubModels,
                VehicleTypes      = vehicleToBedConfigSearchInputModel.VehicleTypes,
                VehicleTypeGroups = vehicleToBedConfigSearchInputModel.VehicleTypeGroups,
                Regions           = vehicleToBedConfigSearchInputModel.Regions,
            };

            bool isEndReached = false;
            int  pageNumber   = 1;

            do
            {
                var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                                new SearchOptions()
                {
                    RecordCount = 1000, PageNumber = pageNumber
                });

                if (result != null && result.Documents != null && result.Documents.Any())
                {
                    vehicleToBedConfigs.AddRange(_vehicleToBedConfigViewModelMapper.Map(result));

                    pageNumber++;
                }
                else
                {
                    isEndReached = true;
                }
            } while (!isEndReached);

            return(vehicleToBedConfigs);
        }
        private async Task <string[]> RefreshBedTypeFacet(VehicleToBedConfigSearchInputModel vehicleToBedConfigSearchInputModel)
        {
            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
            };

            var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                            new SearchOptions
            {
                FacetsToInclude = new List <string>
                {
                    "bedTypeName,count:1000",
                },
                RecordCount = 0
            });

            var vehicleToBedConfigSearchViewModel = _vehicleToBedConfigSearchViewModelMapper.Map(result);

            return(vehicleToBedConfigSearchViewModel.Facets.BedTypes);
        }
        public async Task <List <VehicleToBedConfigViewModel> > Search(List <string> vehicleIdArray)
        {
            List <VehicleToBedConfigViewModel> vehicleToBedConfigs = null;

            if (vehicleIdArray != null && vehicleIdArray.Count > 0)
            {
                var applyFilters = new VehicleToBedConfigSearchFilters()
                {
                    VehicleIds = vehicleIdArray.Select(item => Convert.ToInt32(item)).ToArray()
                };

                var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                                new SearchOptions
                {
                    RecordCount = 1000
                });

                vehicleToBedConfigs = _vehicleToBedConfigViewModelMapper.Map(result);
            }
            return(vehicleToBedConfigs);
        }
        public async Task <VehicleToBedConfigSearchViewModel> Search(VehicleToBedConfigSearchInputModel vehicleToBedConfigSearchInputModel)
        {
            var applyFilters = new VehicleToBedConfigSearchFilters()
            {
                BedConfigId       = vehicleToBedConfigSearchInputModel.BedConfigId,
                StartYear         = Convert.ToInt32(vehicleToBedConfigSearchInputModel.StartYear),
                EndYear           = Convert.ToInt32(vehicleToBedConfigSearchInputModel.EndYear),
                Makes             = vehicleToBedConfigSearchInputModel.Makes,
                Models            = vehicleToBedConfigSearchInputModel.Models,
                SubModels         = vehicleToBedConfigSearchInputModel.SubModels,
                VehicleTypes      = vehicleToBedConfigSearchInputModel.VehicleTypes,
                VehicleTypeGroups = vehicleToBedConfigSearchInputModel.VehicleTypeGroups,
                Regions           = vehicleToBedConfigSearchInputModel.Regions,
                BedLengths        = vehicleToBedConfigSearchInputModel.BedLengths,
                BedTypes          = vehicleToBedConfigSearchInputModel.BedTypes
            };

            var result = await _vehicleToBedConfigSearchService.SearchAsync("", applyFilters.ToAzureSearchFilter(),
                                                                            new SearchOptions
            {
                FacetsToInclude = new List <string>
                {
                    "bedLength,count:1000",
                    "bedTypeName,count:1000",
                    "regionName,count:1000",
                    "vehicleTypeName,count:1000",
                    "vehicleTypeGroupName,count:1000",
                    "makeName,count:1000",
                    "modelName,count:1000",
                    "subModelName,count:1000",
                },
                RecordCount      = 1000,
                ReturnTotalCount = true
            });

            var viewModel = _vehicleToBedConfigSearchViewModelMapper.Map(result);

            return(viewModel);
        }