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; }