public async void UpdateRestList(string CategoryTypeID, string CuisineTypeId, string SearchText, string LocationValue) { Loader.IsVisible = true; NoDataPage.IsVisible = false; NoInternet.IsVisible = false; RestaurantlstView.IsVisible = false; try { HttpRequestWrapper wrapper = new HttpRequestWrapper(); List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >(); parameters.Add(new KeyValuePair <string, string>("company_code", Constant.CompanyID)); parameters.Add(new KeyValuePair <string, string>("search_text", SearchText)); parameters.Add(new KeyValuePair <string, string>("category_id", CategoryTypeID)); parameters.Add(new KeyValuePair <string, string>("cuisine_id", CuisineTypeId)); parameters.Add(new KeyValuePair <string, string>("location_search", LocationValue)); var jsonstr = await wrapper.GetResponseAsync(Constant.APIs[(int)Constant.APIName.RestaurantList], parameters); if (jsonstr.ToString() == "NoInternet") { NoInternet.IsVisible = true; } else { Items = JsonConvert.DeserializeObject <RestaurantListModel>(jsonstr); RestListData = new ObservableCollection <_Restaurant_Data>(); if (Items.data.restaurants.restaurant_data.Count() == 0) { NoDataPage.IsVisible = true; Loader.IsVisible = false; } else { foreach (var x in Items.data.restaurants.restaurant_data) { x.RestBannerImg = x.restaurant_images.Select(Y => Y.imageURL).FirstOrDefault(); RestListData.Add(x); } RestaurantlstView.ItemsSource = RestListData; RestaurantlstView.HeightRequest = (Items.data.restaurants.restaurant_data.Count() * RestaurantlstView.RowHeight) + 2; if (Items.data.restaurants.current_page != Items.data.restaurants.total_pages) { LazyLoadingRestList(Items.data.restaurants.current_page + 1, SearchText, CategoryTypeID, CuisineTypeId, LocationValue); } RestaurantlstView.IsVisible = true; } Loader.IsVisible = false; } } catch (Exception ex) { NoDataPage.IsVisible = true; } }
private async void LazyLoadingRestList(int j, string search, string catID, string cusID, string LocVal) { try { List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >(); parameters.Add(new KeyValuePair <string, string>("company_code", Constant.CompanyID)); parameters.Add(new KeyValuePair <string, string>("search_text", search)); parameters.Add(new KeyValuePair <string, string>("category_id", catID)); parameters.Add(new KeyValuePair <string, string>("cuisine_id", cusID)); parameters.Add(new KeyValuePair <string, string>("location_search", LocVal)); parameters.Add(new KeyValuePair <string, string>("page", j.ToString())); var jsonstr = await wrapper.GetResponseAsync(Constant.APIs[(int)Constant.APIName.RestaurantList], parameters); if (jsonstr.ToString() == "NoInternet") { NoInternet.IsVisible = true; } else { Items = JsonConvert.DeserializeObject <RestaurantListModel>(jsonstr); foreach (var item in Items.data.restaurants.restaurant_data) { item.RestBannerImg = item.restaurant_images.Select(Y => Y.imageURL).FirstOrDefault(); RestListData.Add(item); } RestaurantlstView.ItemsSource = RestListData.ToList(); if (Items.data.restaurants.current_page != Items.data.restaurants.total_pages) { LazyLoadingRestList(Items.data.restaurants.current_page + 1, search, catID, cusID, LocVal); } } } catch (Exception ex) { NoDataPage.IsVisible = true; } }
private async void LoadRestaurantList() { try { var y = await CommonFunc.FooterAdFunc("restaurant"); if (y != null && y.Count() > 0) { CarouselAd.ItemsSource = y.ToList(); CarouselAd.IsVisible = true; } else { CarouselAd.IsVisible = false; } List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >(); parameters.Add(new KeyValuePair <string, string>("company_code", Constant.CompanyID)); //parameters.Add(new KeyValuePair<string, string>("company_code", Constant.CompanyID)); //parameters.Add(new KeyValuePair<string, string>("company_code", Constant.CompanyID)); //parameters.Add(new KeyValuePair<string, string>("company_code", Constant.CompanyID)); var jsonstr = await wrapper.GetResponseAsync(Constant.APIs[(int)Constant.APIName.RestaurantList], parameters); if (jsonstr.ToString() == "NoInternet") { NoInternet.IsVisible = true; } else { Items = JsonConvert.DeserializeObject <RestaurantListModel>(jsonstr); RestListData = new ObservableCollection <_Restaurant_Data>(); foreach (var x in Items.data.restaurants.restaurant_data) { x.RestBannerImg = x.restaurant_images.Select(Y => Y.imageURL).FirstOrDefault(); RestListData.Add(x); } BindingContext = Items.data.restaurants; RestaurantlstView.ItemsSource = RestListData; foreach (var x in Items.data.restaurant_category_cuisine) { filterModel.Add(new FilterModel() { Id = x.cuisine_id, Text = x.cuisine_name, Type = "restaurant_category_cuisine" }); } StackLayout layoutall = new StackLayout(); layoutall.HeightRequest = 37; layoutall.WidthRequest = (DetectWidth.Width) / 4; var alltapGestureRecognizer = new TapGestureRecognizer(); alltapGestureRecognizer.Tapped += async(s, e) => { StackLayout parent = (StackLayout)s; ; UpdateRestList(((Label)parent.Children[0]).Text, "", "", ""); }; layoutall.GestureRecognizers.Add(alltapGestureRecognizer); Label AliasAll = new Label() { IsVisible = true, HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalTextAlignment = TextAlignment.Center, FontAttributes = FontAttributes.Bold, TextColor = Color.White, Text = "All", }; Label AllCategoryId = new Label() { IsVisible = false, Text = "", }; layoutall.Children.Add(AllCategoryId); layoutall.Children.Add(AliasAll); CategoryList.Children.Add(layoutall); foreach (var x in Items.data.restaurant_category_list) { double Width = (DetectWidth.Width) / 4; StackLayout layout = new StackLayout(); layout.HeightRequest = 37; layout.WidthRequest = Width; var tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += async(s, e) => { StackLayout parent = (StackLayout)s; UpdateRestList(((Label)parent.Children[0]).Text, "", "", ""); }; layout.GestureRecognizers.Add(tapGestureRecognizer); Label Alias = new Label() { IsVisible = true, HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalTextAlignment = TextAlignment.Center, FontAttributes = FontAttributes.Bold, TextColor = Color.White, Text = x.category_name.ToString() }; Label CategoryId = new Label() { IsVisible = false, Text = x.category_id.ToString() }; layout.Children.Add(CategoryId); layout.Children.Add(Alias); CategoryList.Children.Add(layout); } //foreach (var x in Items.data.restaurant_category_list) //{ // i++; // switch (i) // { // case 1: // Cat1Txt.Text = x.category_name; // // Cat1Img.Source = x.image_url; // Cat1ID.Text = x.category_id.ToString(); // break; // case 2: // Cat2Txt.Text = x.category_name; // // Cat2Img.Source = x.image_url; // Cat2ID.Text = x.category_id.ToString(); // break; // case 3: // Cat3Txt.Text = x.category_name; // // Cat3Img.Source = x.image_url; // Cat3ID.Text = x.category_id.ToString(); // break; // case 4: // Cat4Txt.Text = x.category_name; // // Cat4Img.Source = x.image_url; // Cat4ID.Text = x.category_id.ToString(); // break; // default: // filterModel.Add(new FilterModel() { Id = x.category_id, Text = x.category_name, Type = "restaurant_category_list" }); // break; // } //} } FilterPicker.ItemsSource = filterModel.Select(x => x.Text).ToList(); NoDataPage.IsVisible = false; RestaurantlstView.IsVisible = true; CustomToolbar.IsVisible = true; Loader.IsVisible = false; if (Items.data.restaurants.restaurant_data.Count() == 0) { NoDataPage.IsVisible = true; } if (Items.data.restaurants.current_page != Items.data.restaurants.total_pages) { LazyLoadingRestList(Items.data.restaurants.current_page + 1, "", "", "", ""); } } catch (Exception ex) { NoDataPage.IsVisible = true; } }