async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item == null || !(e.Item is LessonSettings))
            {
                return;
            }

            LessonSettings selectedLesson = (LessonSettings)e.Item;

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

            await Navigation.PushAsync(new LessonSettingsPage(selectedLesson));
        }
        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;
                    }
                }
            });
        }
Example #3
0
        public LessonSettingsPage(LessonSettings lessonSettings)
        {
            InitializeComponent();
            Title = lessonSettings.LessonName;

            this.lessonSettings      = lessonSettings;
            updatingProgrammatically = true;
            ShowLesson.IsChecked     = lessonSettings.HidingSettings.ShowLesson;
            updatingProgrammatically = false;

            eventTypes = lessonSettings.EventTypes
                         .Select(et => new CheckedEventType
            {
                EventType = et
            })
                         .ToList();
            LessonsEventTypes.ItemsSource = eventTypes;
            UpdateEventTypesCheck();
        }