コード例 #1
0
ファイル: ReviewsPage.xaml.cs プロジェクト: hhels/Diplom
        //protected override async void OnAppearing()
        //{
        //    // если нет подключение к интернету
        //    if(!CrossConnectivity.Current.IsConnected)
        //    {
        //        InsertDataFromLocalDb();
        //        base.OnAppearing();
        //        return;
        //    }

        //    var reviews = await RequestBuilder.Create()
        //                                      .AppendPathSegments("api", "review", "reviewGet") // добавляет к ендпоинт
        //                                      .GetAsync(); //  https://192.168.1.12:5002/api/review/reviewGet

        //    var data = JsonConvert.DeserializeObject<ReviewShow[]>(await reviews.Content.ReadAsStringAsync());

        //    //если ошбка или пришла пустота берем данные из локальной БД
        //    if(!reviews.IsSuccessStatusCode || data is null)
        //    {
        //        InsertDataFromLocalDb();

        //        base.OnAppearing();
        //        return;
        //    }

        //    //занесение в локальную БД новых данных
        //    using(var db = new ApplicationContext())
        //    {
        //        db.ReviewShow.RemoveRange(db.ReviewShow);
        //        await db.ReviewShow.AddRangeAsync(data);
        //        await db.SaveChangesAsync();
        //    }

        //    //reviewList.ItemsSource = data;
        //    using(var db = new ApplicationContext())
        //    {
        //        reviewList.ItemsSource = db.ReviewShow.ToList();
        //    }

        //    void InsertDataFromLocalDb()
        //    {
        //        using(var db = new ApplicationContext())
        //        {
        //            reviewList.ItemsSource = db.ReviewShow.ToList();
        //        }
        //    }
        //}

        private async void ReviewList_ItemAppearing(object sender, ItemVisibilityEventArgs e)
        {
            var itemTypeObject = e.Item as ReviewShow;

            if (_reviewsViewModel.ReviewsList.Last() == itemTypeObject && _reviewsViewModel.ReviewsList.Count() != 1 && _reviewsViewModel.ReviewsList.Count() != 2)
            {
                if (_reviewsViewModel.IsBusy)
                {
                    if (!CrossConnectivity.Current.IsConnected)
                    {
                        // Показываем из локальной БД
                        using (var db = new ApplicationContext())
                        {
                            _reviewsViewModel.LoadMoreEmployerResultInLockal();
                            if (_reviewsViewModel.Error)
                            {
                                await DisplayAlert("Ошибка", "Нет записей", "OK");
                            }
                        }
                        return;
                    }
                    // Загружать из интернета
                    await _reviewsViewModel.LoadMoreEmployerResult();
                }
            }
        }