private void editRoute_Click(object sender, RoutedEventArgs e) { // Instantiate the dialog box var dlg = new AddRouteDialogBox(_clientState); var r = ((Route)routesList.SelectedItem); if (r == null) return; dlg.Title = "Edit Route"; //uneditable fields dlg.originComboBox.IsEnabled = false; dlg.originComboBox.Text = r.Origin.Country.Name; dlg.destComboBox.IsEnabled = false; dlg.destComboBox.Text = r.Destination.Country.Name; dlg.companyComboBox.IsEnabled = false; dlg.companyComboBox.Text = r.Company.Name; dlg.transportComboBox.IsEnabled = false; dlg.transportComboBox.Text = r.TransportType.ToString(); //editable fields dlg.duration.Text = Convert.ToString(r.Duration); dlg.weightCost.Text = Convert.ToString(r.CostPerGram); dlg.volumeCost.Text = Convert.ToString(r.CostPerCm3); dlg.maxWeight.Text = Convert.ToString(r.MaxWeight); dlg.maxVolume.Text = Convert.ToString(r.MaxVolume); var timesForList = new List<DayMinuteHourHolder>(); foreach (var time in r.DepartureTimes) { String day = ""; switch (time.DayComponent) { case DayOfWeek.Monday: day = "Monday"; break; case DayOfWeek.Tuesday: day = "Tuesday"; break; case DayOfWeek.Wednesday: day = "Wednesday"; break; case DayOfWeek.Thursday: day = "Thursday"; break; case DayOfWeek.Friday: day = "Friday"; break; case DayOfWeek.Saturday: day = "Saturday"; break; case DayOfWeek.Sunday: day = "Sunday"; break; } timesForList.Add(new DayMinuteHourHolder() { Day = day, Hour = time.HourComponent, Minute = time.MinuteComponent }); } foreach (var dayMinuteHourHolder in timesForList) { dlg.timesGrid.Items.Add(dayMinuteHourHolder); } // Open the dialog box modally dlg.ShowDialog(); if (dlg.DialogResult != false) { var times = new List<WeeklyTime>(); foreach (DayMinuteHourHolder time in dlg.timesGrid.Items) { DayOfWeek day = DayOfWeek.Monday; switch (time.Day) { case "Monday": day = DayOfWeek.Monday; break; case "Tuesday": day = DayOfWeek.Tuesday; break; case "Wednesday": day = DayOfWeek.Wednesday; break; case "Thursday": day = DayOfWeek.Thursday; break; case "Friday": day = DayOfWeek.Friday; break; case "Saturday": day = DayOfWeek.Saturday; break; case "Sunday": day = DayOfWeek.Sunday; break; } times.Add(new WeeklyTime(day, time.Hour, time.Minute)); _clientCon.EditRoute(r.ID, Convert.ToInt32(dlg.weightCost.Text), Convert.ToInt32(dlg.volumeCost.Text), Convert.ToInt32(dlg.maxWeight.Text), Convert.ToInt32(dlg.maxVolume.Text), Convert.ToInt32(dlg.duration.Text), times); } } }
private void addRoute_Click(object sender, RoutedEventArgs e) { // Instantiate the dialog box var dlg = new AddRouteDialogBox(_clientState); // Open the dialog box modally dlg.ShowDialog(); if (dlg.DialogResult != false) { ComboBoxItem origin = dlg.originComboBox.SelectedItem as ComboBoxItem; ComboBoxItem dest = dlg.destComboBox.SelectedItem as ComboBoxItem; ComboBoxItem company = dlg.companyComboBox.SelectedItem as ComboBoxItem; TransportType transport = TransportType.Land; switch (dlg.transportComboBox.Text) { case "Air": transport = TransportType.Air; break; case "Land": transport = TransportType.Land; break; case "Sea": transport = TransportType.Sea; break; } var times = new List<WeeklyTime>(); foreach (DayMinuteHourHolder time in dlg.timesGrid.Items) { DayOfWeek day = DayOfWeek.Monday; switch (time.Day) { case "Monday": day = DayOfWeek.Monday; break; case "Tuesday": day = DayOfWeek.Tuesday; break; case "Wednesday": day = DayOfWeek.Wednesday; break; case "Thursday": day = DayOfWeek.Thursday; break; case "Friday": day = DayOfWeek.Friday; break; case "Saturday": day = DayOfWeek.Saturday; break; case "Sunday": day = DayOfWeek.Sunday; break; } times.Add(new WeeklyTime(day, time.Hour, time.Minute)); } if (origin == null || dest == null || company == null || dlg.weightCost.Text == String.Empty || dlg.volumeCost.Text == String.Empty || dlg.maxWeight.Text == String.Empty || dlg.maxVolume.Text == String.Empty || dlg.duration.Text == String.Empty) { MessageBox.Show("Cannot have empty fields"); return; } try { Int32.Parse(dlg.weightCost.Text); Int32.Parse(dlg.volumeCost.Text); Int32.Parse(dlg.maxVolume.Text); Int32.Parse(dlg.maxWeight.Text); Int32.Parse(dlg.duration.Text); } catch { MessageBox.Show("You put NaN in a number field. Please enter integers where required"); return; } try { _clientCon.AddRoute(Convert.ToInt32(origin.Tag), Convert.ToInt32(dest.Tag), Convert.ToInt32(company.Tag), transport, Convert.ToInt32(dlg.weightCost.Text), Convert.ToInt32(dlg.volumeCost.Text), Convert.ToInt32(dlg.maxWeight.Text), Convert.ToInt32(dlg.maxVolume.Text), Convert.ToInt32(dlg.duration.Text), times); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }