private Uri CreateUri(string searchString, IEnumerable <string> criteries, GeoLocationParameters geoLocationParameters) { var uriBuilder = new UriBuilder(ApiUri); var query = HttpUtility.ParseQueryString(uriBuilder.Query); query["q"] = string.IsNullOrWhiteSpace(searchString) ? DefaultsSearchString : searchString; query["region_id"] = DefaultRegionId; query["key"] = UserKey; query["fields"] = string.Join(",", _fields); query["sort"] = "flamp_rating"; query["work_time"] = "now"; query["page_size"] = PageSize; if (geoLocationParameters != null) { query["point"] = string.Format("{0},{1}", geoLocationParameters.Lon, geoLocationParameters.Lat); query["radius"] = geoLocationParameters.Radius.ToString(); } foreach (var critery in criteries) { query.Add(string.Format("attr[{0}]", critery), true.ToString()); } //TODO: Исправить проблемы с кодировкой uriBuilder.Query = HttpUtility.UrlDecode(query.ToString()); return(uriBuilder.Uri); }
public ResturantsResponse GetResturants(string searchString, IEnumerable <string> criteries, GeoLocationParameters geoLocationParameters = null) { var uri = CreateUri(searchString, criteries, geoLocationParameters); var resturants = MakeRequest(uri); var resturantsResponse = new ResturantsResponse() { Variants = resturants.ToArray() }; return(resturantsResponse); }