Exemple #1
0
        public EventPopupViewModel(Event ev, TimetableInfoList timetables, ITimetablePageCommands timetablePage)
        {
            Event         = ev;
            TimetablePage = timetablePage;
            if (timetables.Timetables.Count == 1)
            {
                Timetable  = timetables.Timetables.Single();
                LessonInfo = Timetable.GetAndAddLessonsInfo(ev.Lesson);
            }
            else
            {
                LessonInfo = new(ev.Lesson);
            }

            EventNumber = timetables.Events
                          .Where(e => e.Lesson == ev.Lesson && e.Type == ev.Type && e.Start < ev.Start)
                          .DistinctBy(e => e.Start)
                          .Count() + 1;
            EventsCount = timetables.Events
                          .Where(e => e.Lesson == ev.Lesson && e.Type == ev.Type)
                          .DistinctBy(e => e.Start)
                          .Count();
            Details = $"{string.Format(LN.EventType, ev.Type.FullName)} ({EventNumber}/{EventsCount})\n" +
                      $"{string.Format(LN.EventClassroom, ev.RoomName)}\n" +
                      $"{string.Format(LN.EventTeachers, string.Join(", ", ev.Teachers.Select(t => t.Name)))}\n" +
                      $"{string.Format(LN.EventGroups, string.Join(", ", Event.Groups.Select(t => t.Name).GroupBasedOnLastPart()))}\n" +
                      $"{string.Format(LN.EventDay, ev.Start.ToString("ddd, dd.MM.yy"))}\n" +
                      $"{string.Format(LN.EventTime, ev.Start.ToString("HH:mm"), ev.End.ToString("HH:mm"))}";
            Notes = LessonInfo.Notes?.Trim();

            OptionsCommand = CommandFactory.Create(ShowOptions, allowsMultipleExecutions: false);
        }
        public EventPopupViewModel(Event ev, TimetableInfoList timetable)
        {
            Event = ev;

            ClosePopupCommand    = CommandFactory.Create(ClosePopup);
            AddToCalendarCommand = CommandFactory.Create(AddEventToCalendar);

            LessonInfo lessonInfo = timetable.LessonsInfo.FirstOrDefault(li => li.Lesson.Equals(ev.Lesson));

            Notes = lessonInfo?.Notes;

            EventNumber = timetable.Events
                          .Where(e => e.Lesson == ev.Lesson && e.Type == ev.Type && e.Start < ev.Start)
                          .DistinctBy(e => e.Start)
                          .Count() + 1;
            EventsCount = timetable.Events
                          .Where(e => e.Lesson == ev.Lesson && e.Type == ev.Type)
                          .DistinctBy(e => e.Start)
                          .Count();

            Details = $"{string.Format(LN.EventType, ev.Type.FullName)} ({EventNumber}/{EventsCount})\n" +
                      $"{string.Format(LN.EventClassroom, ev.RoomName)}\n" +
                      $"{string.Format(LN.EventTeachers, string.Join(", ", ev.Teachers.Select(t => t.Name)))}\n" +
                      $"{string.Format(LN.EventGroups, string.Join(", ", ev.Groups.Select(t => t.Name)))}\n" +
                      $"{string.Format(LN.EventDay, ev.Start.ToString("ddd, dd.MM.yy"))}\n" +
                      $"{string.Format(LN.EventTime, ev.Start.ToString("HH:mm"), ev.End.ToString("HH:mm"))}";
        }