public EventEditViewmodel(EngineViewmodel engineViewModel, PreviewViewmodel previewViewModel) { _engineViewModel = engineViewModel; _previewViewModel = previewViewModel; if (previewViewModel != null) { previewViewModel.PropertyChanged += PreviewViewModel_PropertyChanged; } _engine = engineViewModel.Engine; _fields.CollectionChanged += _fields_or_commands_CollectionChanged; CommandSaveEdit = new UICommand() { ExecuteDelegate = _save, CanExecuteDelegate = _canSave }; CommandUndoEdit = new UICommand() { ExecuteDelegate = _load, CanExecuteDelegate = o => IsModified }; CommandChangeMovie = new UICommand() { ExecuteDelegate = _changeMovie, CanExecuteDelegate = _canChangeMovie }; CommandEditMovie = new UICommand() { ExecuteDelegate = _editMovie, CanExecuteDelegate = _canEditMovie }; CommandCheckVolume = new UICommand() { ExecuteDelegate = _checkVolume, CanExecuteDelegate = _canCheckVolume }; CommandEditField = new UICommand { ExecuteDelegate = _editField }; CommandTriggerStartType = new UICommand { ExecuteDelegate = _triggerStartType, CanExecuteDelegate = _canTriggerStartType }; CommandMoveUp = new UICommand() { ExecuteDelegate = o => _event?.MoveUp(), CanExecuteDelegate = _canMoveUp }; CommandMoveDown = new UICommand() { ExecuteDelegate = o => _event?.MoveDown(), CanExecuteDelegate = _canMoveDown }; CommandDelete = new UICommand { ExecuteDelegate = o => { if (_event != null && MessageBox.Show(resources._query_DeleteItem, resources._caption_Confirmation, MessageBoxButton.OKCancel) == MessageBoxResult.OK) { EventClipboard.SaveUndo(new IEvent[] { _event }, _event.StartType == TStartType.After ? _event.Prior : _event.Parent); _event.Delete(); } }, CanExecuteDelegate = o => _event?.AllowDelete() == true }; }
public EventEditViewmodel(IEvent @event, EngineViewmodel engineViewModel) : base(@event) { _engineViewModel = engineViewModel; Model.PropertyChanged += ModelPropertyChanged; if (@event.EventType == TEventType.Container) { EventRightsEditViewmodel = new EventRightsEditViewmodel(@event, engineViewModel.Engine.AuthenticationService); EventRightsEditViewmodel.ModifiedChanged += RightsModifiedChanged; } CommandSaveEdit = new UiCommand(o => Save(), _canSave); CommandUndoEdit = new UiCommand(o => UndoEdit(), o => IsModified); CommandChangeMovie = new UiCommand(_changeMovie, _canChangeMovie); CommandEditMovie = new UiCommand(_editMovie, _canEditMovie); CommandCheckVolume = new UiCommand(_checkVolume, _canCheckVolume); CommandTriggerStartType = new UiCommand ( _triggerStartType, _canTriggerStartType ); CommandMoveUp = new UiCommand ( o => Model.MoveUp(), o => Model.CanMoveUp() ); CommandMoveDown = new UiCommand ( o => Model.MoveDown(), o => Model.CanMoveDown() ); CommandDelete = new UiCommand ( async o => { if (MessageBox.Show(resources._query_DeleteItem, resources._caption_Confirmation, MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } await EventClipboard.SaveUndo(new List <IEvent> { Model }, Model.StartType == TStartType.After ? Model.Prior : Model.Parent); Model.Delete(); }, o => Model.AllowDelete() ); if (@event is ITemplated templated) { TemplatedEditViewmodel = new TemplatedEditViewmodel(templated, true, true, engineViewModel.VideoFormat); TemplatedEditViewmodel.ModifiedChanged += TemplatedEditViewmodel_ModifiedChanged; } }
public EventEditViewmodel(IEvent @event, EngineViewmodel engineViewModel) : base(@event) { _engineViewModel = engineViewModel; Model.PropertyChanged += ModelPropertyChanged; if (@event.EventType == TEventType.Container) { EventRightsEditViewmodel = new EventRightsEditViewmodel(@event, engineViewModel.Engine.AuthenticationService); EventRightsEditViewmodel.ModifiedChanged += RightsModifiedChanged; } Router = engineViewModel.Router; InputPorts = new List <object>(); if (Router != null) { InputPorts.Add(string.Empty); //default value in ComboBox foreach (var input in Router.InputPorts) { InputPorts.Add(input); } _selectedInputPort = InputPorts?.FirstOrDefault(param => param is IRouterPort routerPort && routerPort.PortId == _routerPort) ?? InputPorts?[0]; } if (@event.EventType == TEventType.Live && Model.Engine.MediaManager.Recorders.Count() > 0) { RecordingInfoViewmodel = new RecordingInfoViewModel(@event.Engine, @event.RecordingInfo); RecordingInfoViewmodel.ModifiedChanged += RecordingInfoViewmodel_ModifiedChanged; } CommandSaveEdit = new UiCommand(o => Save(), o => CanSave); CommandUndoEdit = new UiCommand(o => UndoEdit(), o => IsModified); CommandChangeMovie = new UiCommand(_changeMovie, _canChangeMovie); CommandEditMovie = new UiCommand(_editMovie, _canEditMovie); CommandCheckVolume = new UiCommand(_checkVolume, _canCheckVolume); CommandTriggerStartType = new UiCommand ( _triggerStartType, _canTriggerStartType ); CommandMoveUp = new UiCommand ( o => Model.MoveUp(), o => Model.CanMoveUp() ); CommandMoveDown = new UiCommand ( o => Model.MoveDown(), o => Model.CanMoveDown() ); CommandDelete = new UiCommand ( async o => { if (MessageBox.Show(resources._query_DeleteItem, resources._caption_Confirmation, MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } await EventClipboard.SaveUndo(new List <IEvent> { Model }, Model.StartType == TStartType.After ? Model.Prior : Model.Parent); Model.Delete(); }, o => Model.HaveRight(EventRight.Delete) && Model.AllowDelete() ); if (@event is ITemplated templated) { TemplatedEditViewmodel = new TemplatedEditViewmodel(templated, true, true, engineViewModel.VideoFormat); TemplatedEditViewmodel.ModifiedChanged += TemplatedEditViewmodel_ModifiedChanged; } }