Beispiel #1
0
        private async void SaveSchedule()
        {
            if (CurrentSchedule == null)
            {
                throw new Exception("Расписание не выбрано");
            }

            if (string.IsNullOrWhiteSpace(CurrentSchedule.Name))
            {
                throw new Exception("Не задано название расписания");
            }

            try
            {
                IsBusy = true;
                var sc = Schedules.FirstOrDefault(s => s.Id == CurrentSchedule.Id) ?? new ScheduleClass();
                if (sc.Id == 0)
                {
                    sc.SetType(CurrentSchedule.Type);
                }
                sc.Days = CurrentSchedule.DaySchedules.Select(s => new List <ValueTimeRange>(s.Spans)).ToArray();
                sc.Name = CurrentSchedule.Name;

                var savedSchedule = await _scheduleRepository.SaveSchedule(sc, CurrentSchedule.Id == 0);

                if (savedSchedule == null)
                {
                    throw new Exception("Не удалось сохранить расписание, попробуйте позже.");
                }
                else
                {
                    if (CurrentSchedule.Id != 0)
                    {
                        Schedules.Remove(SelectedSchedule);
                    }

                    Schedules.Add(savedSchedule);
                    SelectedSchedule = savedSchedule;
                }
            }
            finally
            {
                IsBusy = false;
            }
        }