/// <summary> /// Get top searches /// </summary> /// <param name="querry">querry string of the search</param> /// <param name="searchType">Search type(only blended and users works)</param> /// <param name="timezoneOffset"> /// Timezone offset of the search region (GMT Offset * 60 * 60 - Like Tehran GMT +3:30 = 3.5* /// 60*60 = 12600) /// </param> /// <returns></returns> public async Task <IResult <InstaDiscoverTopSearches> > GetTopSearchesAsync( string querry = "", InstaDiscoverSearchType searchType = InstaDiscoverSearchType.Users, int timezoneOffset = 12600) { try { var instaUri = InstaUriCreator.GetTopSearchUri(user.RankToken, querry, searchType, timezoneOffset); var request = httpHelper.GetDefaultRequest(HttpMethod.Get, instaUri, deviceInfo); var response = await httpRequestProcessor.SendAsync(request).ConfigureAwait(false); var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <InstaDiscoverTopSearches>(response, json)); } var obj = JsonConvert.DeserializeObject <InstaDiscoverTopSearchesResponse>(json); return(Result.Success(InstaConvertersFabric.Instance.GetDiscoverTopSearchesConverter(obj).Convert())); } catch (HttpRequestException httpException) { logger?.LogError(httpException, "Error"); return(Result.Fail(httpException, default(InstaDiscoverTopSearches), ResponseType.NetworkProblem)); } catch (Exception exception) { logger?.LogError(exception, "Error"); return(Result.Fail <InstaDiscoverTopSearches>(exception)); } }
/// <summary> /// Get suggested searches /// </summary> /// <param name="searchType">Search type(only blended and users works)</param> public async Task <IResult <InstaDiscoverSuggestedSearches> > GetSuggestedSearchesAsync(InstaDiscoverSearchType searchType = InstaDiscoverSearchType.Users) { try { var instaUri = UriCreator.GetSuggestedSearchUri(searchType); var request = _httpHelper.GetDefaultRequest(HttpMethod.Get, instaUri, _deviceInfo); var response = await _httpRequestProcessor.SendAsync(request); var json = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <InstaDiscoverSuggestedSearches>(response, json)); } var obj = JsonConvert.DeserializeObject <InstaDiscoverSuggestedSearchesResponse>(json); return(Result.Success(ConvertersFabric.Instance.GetDiscoverSuggestedSearchesConverter(obj).Convert())); } catch (HttpRequestException httpException) { _logger?.LogException(httpException); return(Result.Fail(httpException, default(InstaDiscoverSuggestedSearches), ResponseType.NetworkProblem)); } catch (Exception exception) { _logger?.LogException(exception); return(Result.Fail <InstaDiscoverSuggestedSearches>(exception)); } }