// Copyright (c) 2017 schick Informatik // Description: Bearbeitungsdialog für Call of itinerary // using System; using System.Windows; using ENI2.Controls; using bsmd.database; using ENI2.Locode; namespace ENI2.EditControls { /// /// Interaction logic for EditPortOfItineraryDialog.xaml /// public partial class EditPortOfItineraryDialog : EditWindowBase { public EditPortOfItineraryDialog() { InitializeComponent(); Loaded += EditPortOfItineraryDialog_Loaded; ; AddClicked += () => { this.textBoxPortName.Focus(); }; } public PortOfItinerary PortOfItinerary { get; set; } private void EditPortOfItineraryDialog_Loaded(object sender, RoutedEventArgs e) { this.OKClicked += EditPortOfItineraryDialog_OKClicked; // copy into fields this.textBoxPortName.Text = this.PortOfItinerary.PortOfItineraryName; this.dateTimePickerETA.Value = this.PortOfItinerary.PortOfItineraryETA.HasValue ? ((DateTime?) DateTime.SpecifyKind(this.PortOfItinerary.PortOfItineraryETA.Value, DateTimeKind.Utc).ToLocalTime()) : null; this.AddVisible = true; } public void CopyValuesToEntity() { // copy back string portNameFromLocode = null; if(!this.textBoxPortName.Text.IsNullOrEmpty() && (this.textBoxPortName.Text.Length == 5)) portNameFromLocode = LocodeDB.PortNameFromLocode(this.textBoxPortName.Text.ToUpper()); if(!portNameFromLocode.IsNullOrEmpty()) // der Anwender hat einen Locode eingetragen { this.PortOfItinerary.PortOfItineraryLocode = this.textBoxPortName.Text; this.PortOfItinerary.PortOfItineraryName = portNameFromLocode; } else // einfach Hafen als Text direkt übernehmen { this.PortOfItinerary.PortOfItineraryName = this.textBoxPortName.Text; } this.PortOfItinerary.PortOfItineraryETA = this.dateTimePickerETA.Value.HasValue ? ((DateTime?)DateTime.SpecifyKind(this.dateTimePickerETA.Value.Value, DateTimeKind.Local).ToUniversalTime()) : null; } private void EditPortOfItineraryDialog_OKClicked() { this.CopyValuesToEntity(); } } }