Example #1
0
        public ScheduleDayViewModel(int weekNumber, DateTimeOffset date, IEnumerable <ScheduleEntry> entries, WellknownData schedule)
        {
            ILocalizationService locService = Application.Current.GetService <ILocalizationService>();

            LocalDate        = date;
            LocalDateDisplay = locService.Format("ScheduleTableDayDisplayFormat", date);
            WeekNumber       = weekNumber;
            DayOfWeek        = date.DayOfWeek == System.DayOfWeek.Sunday ? 7 : (int)date.DayOfWeek;
            DayOfWeekDisplay = locService.GetString($"ScheduleTableDayOfWeek{DayOfWeek}Header");
            IsToday          = date == DateTimeOffset.Now.GetLocalDate();
            Entries          = entries.OrderBy(x => x.StartSession).Select(x => new ScheduleEntryViewModel(x, date, schedule)).ToList();
            Initialized      = true;

            ConsolidatedEntries = new List <ScheduleConsolidationViewModel>();
            for (int i = 0; i < Entries.Count; i++)
            {
                ScheduleEntryViewModel         currentEntry  = Entries[i];
                ScheduleConsolidationViewModel consolidation = new ScheduleConsolidationViewModel(currentEntry);
                for (int j = i; j < Entries.Count; j++)
                {
                    ScheduleEntryViewModel potentialConflict = Entries[j];
                    if (potentialConflict.StartSession > currentEntry.EndSession)
                    {
                        break;
                    }
                    else
                    {
                        consolidation.Conflicts.Add(potentialConflict);
                    }
                }
                if (consolidation.ConflictCount > 1)
                {
                    consolidation.ConflictCountDisplay = locService.Format("ScheduleTableConflictDescriptionFormat", consolidation.ConflictCount - 1);
                }
                ConsolidatedEntries.Add(consolidation);
                i += consolidation.ConflictCount;
            }
        }
Example #2
0
 public ScheduleConsolidationViewModel(ScheduleEntryViewModel displayEntry)
 {
     DisplayEntry         = displayEntry;
     ConflictCountDisplay = null;
     Conflicts            = new List <ScheduleEntryViewModel>();
 }