private async void Search_Button_Clicked(object sender, RoutedEventArgs e) { var galleryEndpoint = new GalleryEndpoint(_currentUser.ApiClient, _currentUser.HttpClient); _listBox = new ListBox(); ImageViewer.Content = _listBox; var sectionType = ConfigurationManager.Instance.ParseEnum <GallerySectionType>(((ComboBoxItem)SectionTypeComboBox.SelectedItem)?.Content?.ToString()); var sortType = ConfigurationManager.Instance.ParseEnum <GallerySortType>(((ComboBoxItem)SortTypeComboBox.SelectedItem)?.Content?.ToString()); var windowType = ConfigurationManager.Instance.ParseEnum <GalleryWindowType>(((ComboBoxItem)WindowTypeComboBox.SelectedItem)?.Content?.ToString()); var parametersObject = new GalleryParametersObject { ExactSearch = SearchBox.Text, SectionType = sectionType, SortType = sortType, WindowType = windowType }; var images = await galleryEndpoint.GetGalleryAsync(parametersObject); foreach (var image in images.Where(s => s.Height > 0 && s.Width > 0 && !string.IsNullOrEmpty(s.Link))) { _listBox.Items?.Add(new Image { Source = new BitmapImage { UriSource = new Uri(image.Link), DecodePixelHeight = 300, DecodePixelWidth = 300, }, Height = 300, Width = 300, Name = image.Id }); } }
public async Task <IEnumerable <IGalleryImageResponseModel> > GetGalleryAsync(GalleryParametersObject parametersObject) { var requestUrl = $"{GalleryEndpointUrl}"; if (string.IsNullOrEmpty(parametersObject.ExactSearch)) { requestUrl += $"/{parametersObject.SectionType.ToString().ToLowerInvariant()}/{parametersObject.SortType.ToString().ToLowerInvariant()}/"; if (parametersObject.SectionType == GallerySectionType.Top) { requestUrl += $"{parametersObject.WindowType.ToString().ToLowerInvariant()}/"; } requestUrl += $"{parametersObject.Page}"; requestUrl += $"?showViral={parametersObject.ShowViral.ToString()}"; } else { requestUrl += $"/search/{parametersObject.SortType.ToString().ToLowerInvariant()}"; if (parametersObject.SectionType == GallerySectionType.Top) { requestUrl += $"/{parametersObject.WindowType.ToString().ToLowerInvariant()}"; } requestUrl += $"/?q_exactly={parametersObject.ExactSearch}"; } using (var request = RequestBuilder.Instance.BuildRequest(HttpMethod.Get, requestUrl)) { var gallery = await SendRequestAsync <IEnumerable <GalleryImageResponseModel> >(request).ConfigureAwait(false); return(gallery); } }