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