public Connect.SearchOptions Build(Connect.SearchSettings searchSettings, ProductSearchOptions searchOptions) { Assert.ArgumentNotNull(searchSettings, nameof(searchSettings)); Assert.ArgumentNotNull(searchOptions, nameof(searchOptions)); if (!string.IsNullOrWhiteSpace(searchOptions.SortField) && !searchSettings.SortFieldNames.Contains( searchOptions.SortField, StringComparer.InvariantCultureIgnoreCase)) { throw new Exception("Sort field not found"); } return(new Connect.SearchOptions { SearchKeyword = searchOptions.SearchKeyword, Facets = this.GetFacetsIntersection(searchSettings.Facets, searchOptions.Facets), StartPageIndex = searchOptions.PageNumber, NumberOfItemsToReturn = searchOptions.PageSize > 0 ? searchOptions.PageSize : searchSettings.ItemsPerPage, CategoryId = searchOptions.CategoryId, SortField = !string.IsNullOrEmpty(searchOptions.SortField) ? searchOptions.SortField : searchSettings.SortFieldNames?.FirstOrDefault(), SortDirection = searchOptions.SortDirection == SortDirection.Asc ? Connect.SortDirection.Asc : Connect.SortDirection.Desc }); }
public Connect.SearchOptions Build(Connect.SearchSettings searchSettings, ProductSearchOptions searchOptions) { Assert.ArgumentNotNull(searchSettings, nameof(searchSettings)); Assert.ArgumentNotNull(searchOptions, nameof(searchOptions)); return(new Connect.SearchOptions { SearchKeyword = searchOptions.SearchKeyword, Facets = this.GetFacetsIntersection(searchSettings.Facets, searchOptions.Facets), StartPageIndex = searchOptions.PageNumber, NumberOfItemsToReturn = searchOptions.PageSize > 0 ? searchOptions.PageSize : searchSettings.ItemsPerPage, CategoryId = searchOptions.CategoryId, SortField = !string.IsNullOrEmpty(searchOptions.SortField) ? searchOptions.SortField : searchSettings.SortFieldNames?.FirstOrDefault(), SortDirection = searchOptions.SortDirection == SortDirection.Asc ? Connect.SortDirection.Asc : Connect.SortDirection.Desc }); }