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