예제 #1
0
        private async Task RefreshTimetable(bool?hard)
        {
            if (hard == null)
            {
                try
                {
                    await TimetableService.RefreshTimetables(Date);
                }
                catch (Exception ex)
                {
                    await Application.Current.MainPage.Navigation.PopAllPopupAsync();

                    await Application.Current.MainPage.DisplayAlert(
                        "Произошла ошибка при загрузке данных",
                        "Убедитесь, что вы подключены к сети Сириуса (Sirius_free) и повторите попытку",
                        "Ок");

                    IsBusy = false;
                    return;
                }
            }
            else if (hard.Value)
            {
                try
                {
                    await Application.Current.MainPage.Navigation.PushPopupAsync(new LoadingView());

                    await TimetableService.RefreshTimetables(Date);

                    await Application.Current.MainPage.Navigation.PopAllPopupAsync();
                }
                catch (Exception ex)
                {
                    await Application.Current.MainPage.Navigation.PopAllPopupAsync();

                    await Application.Current.MainPage.DisplayAlert(
                        "Произошла ошибка при загрузке данных",
                        "Убедитесь, что вы подключены к сети Сириуса (Sirius_free) и повторите попытку",
                        "Ок");

                    IsBusy = false;
                    return;
                }
            }

            var dateKey          = Date.ToString("dd.MM.yyyy").Replace(".", "");
            var timetable        = TimetableService.Timetables[dateKey];
            var currentTimetable = timetable.Teams[TimetableService.KeywordDictionary[_team]];
            var collection       = currentTimetable.Select(activity => new TimetableItem(activity));

            Timetable = new ObservableCollection <TimetableItem>(collection);
            UpdateCurrentAction();
            IsBusy = false;
        }