コード例 #1
0
 public static void UpdateSelected(SavedGroup selectedGroup)
 {
     Serialisation.ToJsonFile((Group)selectedGroup, FilePath.SelectedGroup);
     Device.BeginInvokeOnMainThread(() =>
     {
         MessagingCenter.Send(Application.Current, MessageTypes.SelectedGroupChanged, (Group)selectedGroup);
     });
 }
コード例 #2
0
        async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item == null || !(e.Item is SavedGroup))
            {
                return;
            }

            SavedGroup selectedGroup = (SavedGroup)e.Item;

            //Deselect Item
            ((ListView)sender).SelectedItem = null;

            List <string> actionList = new List <string> {
                "Обновить расписание", "Настроить отображение предметов", "Удалить"
            };

            if (GroupsDataStore.GetSelected()?.ID != selectedGroup.ID)
            {
                actionList.Insert(0, "Выбрать");
            }
            string action = await DisplayActionSheet("Выберете действие:", "Отмена", null, actionList.ToArray());

            switch (action)
            {
            case "Выбрать":
                GroupsDataStore.UpdateSelected(selectedGroup);
                await DisplayAlert("Выбор группы", "Группа успешно выбрана", "Ok");

                break;

            case "Обновить расписание":
                await UpdateTimetable(selectedGroup);

                break;

            case "Настроить отображение предметов":
                await Navigation.PushAsync(new ManageLessonsPage(selectedGroup));

                break;

            case "Удалить":
                groups.Remove(selectedGroup);
                GroupsDataStore.UpdateSaved(groups.ToList());
                if (selectedGroup.ID == GroupsDataStore.GetSelected()?.ID)
                {
                    GroupsDataStore.UpdateSelected(null);
                }
                break;
            }
        }
コード例 #3
0
        public ManageLessonsPage(SavedGroup group)
        {
            InitializeComponent();
            Title     += $": {group.Name}";
            this.group = group;

            EventList eventList = EventsDataStore.GetEventsLocal(group.ID);

            if (eventList == null)
            {
                return;
            }
            List <LessonSettings> lessonSettings = LessonSettingsDataStore.GetLessonSettings(group.ID);

            lessons = new ObservableCollection <LessonSettings>
                      (
                eventList.Lessons()
                .Select(lesson =>
            {
                LessonSettings res = lessonSettings.FirstOrDefault(ls => ls.LessonName == lesson)
                                     ?? new LessonSettings {
                    LessonName = lesson
                };
                res.EventTypes = eventList.EventTypes(lesson).ToList();
                return(res);
            })
                .OrderBy(lesson => lesson.LessonName)
                      );
            LessonsList.ItemsSource = lessons;
            if (lessons.Count == 0)
            {
                NoSourceLayout.IsVisible = true;
            }

            MessagingCenter.Subscribe <LessonSettingsPage, LessonSettings>(this, "OneLessonSettingsChanged", (sender, newLessonSettings) =>
            {
                for (int i = 0; i < lessons.Count; i++)
                {
                    if (lessons[i].LessonName == newLessonSettings.LessonName)
                    {
                        lessons[i] = newLessonSettings;
                        lessons[i].NotifyChanged();
                        break;
                    }
                }
            });
        }