public ResponseConfigurationDialogKMTronicDeviceConfigurationViewModel(ObservableCollection <ResponseObjectModel> _responseCollection, ResponseObjectModel _responseObject) { if (_responseObject != null) { responseObjectModel = _responseObject; UserName = (responseObjectModel.ResponseObject as KMTronicModel).UserName; Password = (responseObjectModel.ResponseObject as KMTronicModel).Password; HostName = (responseObjectModel.ResponseObject as KMTronicModel).HostName; PortNumber = (responseObjectModel.ResponseObject as KMTronicModel).PortNumber.ToString(); RelayContactCollection = (responseObjectModel.ResponseObject as KMTronicModel).RelayContactCollection; SelectedDevice = (responseObjectModel.ResponseObject as KMTronicModel).DeviceType; } else { HostName = "localhost"; PortNumber = "80"; UserName = "******"; Password = "******"; SelectedDevice = KMTronicDeviceType.W2CR; kmTronicDevice = new KMTronicModel(SelectedDevice); responseObjectModel = new ResponseObjectModel(kmTronicDevice); RelayContactCollection = new ObservableCollection <RelayContact>(); } resLoader = new ResourceLoader(); _cmdDeleteEntry = new RelayCommand(null); _cmdAddNewRelayContact = new RelayCommand(AddRelayContact); rowContextMenuItems = new ObservableCollection <MenuItem>(); emptySpaceContextMenuItems = new ObservableCollection <MenuItem>(); emptySpaceContextMenuItems.Add(new MenuItem() { Header = resLoader.getResource("contextMenuItemAddNewRelayContact"), Command = _cmdAddNewRelayContact }); rowContextMenuItems.Add(new MenuItem() { Header = resLoader.getResource("contextMenuItemEditRelayContact"), Command = _cmdAddNewRelayContact }); rowContextMenuItems.Add(new MenuItem() { Header = resLoader.getResource("contextMenuItemDeleteSelectedItem"), Command = _cmdDeleteEntry }); IsModal = true; }
private void OnNewAddOrEditBehaviorCommand() { switch (this.SelectedResponseType) { case "MessageTELEGRAM": this.Dialogs.Add(new ResponseConfigurationDialogTelegramMessageResponseViewModel(StaticEvents, ResponseCollection, SelectedDataGridItem) { OnOk = (sender) => { ResponseObjectModel.ResponseObject = sender.ResponseObjectModel.ResponseObject; ResponseObjectModel.HasConfiguration = sender.ResponseObjectModel.HasConfiguration; //TODO: Check and Clean if abortion sender.Close(); }, OnCancel = (sender) => { sender.Close(); }, OnCloseRequest = (sender) => { sender.Close(); } }); break; case "MessageEMAIL": this.Dialogs.Add(new ResponseConfigurationDialogEMailMessageResponseViewModel(ResponseCollection, SelectedDataGridItem) { OnOk = (sender) => { try { if (sender.EMailCollection != null && sender.EMailCollection.Count > 0) { ResponseObjectModel.ResponseObject = sender.ResponseObjectModel.ResponseObject; ResponseObjectModel.HasConfiguration = sender.ResponseObjectModel.HasConfiguration; } sender.Close(); } catch (Exception e) { if (e.GetType() == typeof(NullReferenceException)) { if (new MessageBoxViewModel { Caption = "No Mails attached", Message = "Are your sure to proceed without any attached mails", Buttons = MessageBoxButton.YesNo, Image = MessageBoxImage.Question } .Show(this.Dialogs) == MessageBoxResult.Yes) { this.Close(); } } else { if (new MessageBoxViewModel { Caption = "Error", Message = string.Format("{0}, {1}", e.Message, e.InnerException == null ? "" : e.InnerException.Message), Buttons = MessageBoxButton.YesNo, Image = MessageBoxImage.Question } .Show(this.Dialogs) == MessageBoxResult.Yes) { this.Close(); } } } }, OnCancel = (sender) => { sender.Close(); }, OnCloseRequest = (sender) => { sender.Close(); } }); break; case "DeviceKNX": break; case "DeviceKMTronic": this.Dialogs.Add(new ResponseConfigurationDialogKMTronicDeviceConfigurationViewModel(ResponseCollection, SelectedDataGridItem) { OnOk = (sender) => { try { if (sender.RelayContactCollection != null && sender.RelayContactCollection.Count > 0) { KMTronicModel device = new KMTronicModel(sender.SelectedDevice); device.RelayContactCollection = sender.RelayContactCollection; device.HostName = sender.HostName; device.PortNumber = Convert.ToInt32(sender.PortNumber); device.UserName = sender.UserName; device.Password = sender.Password; ResponseObjectModel.ResponseObject = device; ResponseObjectModel.HasConfiguration = true; } sender.Close(); } catch (Exception e) { if (e.GetType() == typeof(NullReferenceException)) { if (new MessageBoxViewModel { Caption = "No Mails attached", Message = "Are your sure to proceed without any attached mails", Buttons = MessageBoxButton.YesNo, Image = MessageBoxImage.Question } .Show(this.Dialogs) == MessageBoxResult.Yes) { this.Close(); } } else { if (new MessageBoxViewModel { Caption = "Error", Message = string.Format("{0}, {1}", e.Message, e.InnerException == null ? "" : e.InnerException.Message), Buttons = MessageBoxButton.YesNo, Image = MessageBoxImage.Question } .Show(this.Dialogs) == MessageBoxResult.Yes) { this.Close(); } } } }, OnCancel = (sender) => { sender.Close(); }, OnCloseRequest = (sender) => { sender.Close(); } }); break; } }