public ApiParameters(ApiParameters apiParameters) { Id = apiParameters.Id; ParentId = apiParameters.ParentId; Fields = apiParameters.Fields; Query = apiParameters.Query; QueryBy = apiParameters.QueryBy; Page = apiParameters.Page; Limit = apiParameters.Limit; Summary = apiParameters.Summary; Order = apiParameters.Order; OrderBy = apiParameters.OrderBy; Pagination = apiParameters.Pagination; PrettyPrint = apiParameters.PrettyPrint; }
public SearchParameters GetSearchParameters(ApiParameters apiParameters) { var searchParameters = new SearchParameters { IncludeTotalResultCount = true, SearchMode = SearchMode.Any, Top = apiParameters.Limit, Skip = (apiParameters.Page - 1) * apiParameters.Limit, QueryType = QueryType.Full }; if (apiParameters.IsSearchQuery()) { searchParameters.SearchFields = apiParameters.GetSplittedQueryBy(); } var orderBy = ""; if (!string.IsNullOrWhiteSpace(apiParameters.OrderBy)) { var validOrderByValues = new Dictionary <string, string> { { "createdat", "createdAt" }, { "distance", "distance" }, { "popularity", "numberOfViews" }, { "price", "priceWithTaxAndDiscount" }, { "size", "overallSize" } }; var orderByLowerCase = apiParameters.OrderBy.ToLowerInvariant(); if (!validOrderByValues.ContainsKey(orderByLowerCase)) { orderBy = "createdAt desc"; } else if (!orderByLowerCase.Equals("distance")) { orderBy = validOrderByValues[orderByLowerCase] + " "; if (orderByLowerCase.Equals("popularity")) { orderBy += "desc"; } else { orderBy += (apiParameters.IsOrderDescending() ? "desc" : "asc"); } } } if (string.IsNullOrWhiteSpace(orderBy)) { orderBy = "createdAt desc"; } searchParameters.OrderBy = new List <string> { orderBy }; return(searchParameters); }