private void GenerateTrip_Click(object sender, System.Windows.RoutedEventArgs e) { try { if ((Center)FromCenter.SelectedItem == null) { throw new Exception("Выберите пункт отправки"); } if ((Center)ToCenter.SelectedItem == null) { throw new Exception("Выберите пункт назначения"); } if ((Truck)Transport.SelectedItem == null) { throw new Exception("Выберите транспорт"); } Truck truck = (Truck)Transport.SelectedItem; Center center_from = (Center)FromCenter.SelectedItem; Center center_to = (Center)ToCenter.SelectedItem; if (center_from.Id == center_to.Id) { throw new Exception("Центры не должны совпадать"); } //Получить все заказы с выбранного центра ObservableCollection <Require> requires = controller.GetDBRequiersFrom(center_from); //Получить слоты с каждого заказа ObservableCollection <TruckSlot> slots = new ObservableCollection <TruckSlot>(); foreach (Require requier in requires) { foreach (TruckSlot slot in TruckSlot.GetSlotsFromRequier(requier)) { slots.Add(slot); } } //Зарегистрировать рейс Trip trip = new Trip(slots, center_to, center_from, truck, "Ожидает отправки"); controller.AddTripInDB(trip); //Занести слоты в БД ObservableCollection <Trip> trips = controller.GetTrips(); trip = trips[trips.Count - 1]; foreach (TruckSlot slot in slots) { slot.SetTrip(trip); controller.AddTruckSlotInDB(slot); } truck.SetBusy(); MessageBox.Show("Сформирован новый рейс"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }