private async void AddCommand_Click(object sender, RoutedEventArgs e)
        {
            var selectedScene = SceneGrid.SelectedItem as Scene;
            if (selectedScene == null) return;

            SceneCmdsGrid.SelectedItems.Clear();
            var sceneStoredCommand = new SceneStoredCommand();

            //Send it to the command builder to get filled with a command
            var cbWindow = new CommandBuilder(_context, sceneStoredCommand) { Owner = _app.ZvsWindow };

            if (!(cbWindow.ShowDialog() ?? false)) return;

            //Set Order
            var max = selectedScene.Commands.Max(o => o.SortOrder);
            if (max.HasValue)
                sceneStoredCommand.SortOrder = max.Value + 1;
            else
                sceneStoredCommand.SortOrder = 0;

            if (selectedScene.IsRunning)
            {
                ShowSceneEditWarning(selectedScene.Name);
            }
            else
            {
                selectedScene.Commands.Add(sceneStoredCommand);

                var result = await _context.TrySaveChangesAsync(_app.Cts.Token);
                if (result.HasError)
                    await Log.ReportErrorFormatAsync(_app.Cts.Token, "Error adding scene command. {0}", result.Message);

                SceneCmdsGrid.SelectedItems.Add(sceneStoredCommand);
            }
        }
        private async void AddUpdateCommand_Click(object sender, RoutedEventArgs e)
        {
            var scheduledTask = ScheduledTaskDataGrid.SelectedItem as ScheduledTask;
            if (scheduledTask == null)
                return;

            //Send it to the command builder to get filled with a command
            var cbWindow = new CommandBuilder(_context, scheduledTask)
            {
                Owner = _app.ZvsWindow
            };

            if (!(cbWindow.ShowDialog() ?? false)) return;

            await SaveChangesAsync();
        }
        private async void SettingBtn_Click_1(object sender, RoutedEventArgs e)
        {
            var sceneCommand = SceneCmdsGrid.SelectedItem as SceneStoredCommand;
            if (sceneCommand == null) return;

            //Send it to the command builder to get edited
            var cbWindow = new CommandBuilder(_context, sceneCommand) { Owner = _app.ZvsWindow };

            if (!(cbWindow.ShowDialog() ?? false)) return;
            if (sceneCommand.Scene.IsRunning)
            {
                ShowSceneEditWarning(sceneCommand.Scene.Name);
            }
            else
            {
                var result = await _context.TrySaveChangesAsync(_app.Cts.Token);
                if (result.HasError)
                    await Log.ReportErrorFormatAsync(_app.Cts.Token, "Error saving scene command. {0}", result.Message);
            }
        }
        private async void AddUpdateCommand_Click(object sender, RoutedEventArgs e)
        {
          //Send it to the command builder to get filled with a command
            var cbWindow = new CommandBuilder(_context, Trigger) {Owner = this};
            if (!(cbWindow.ShowDialog() ?? false)) return;

            var result = await _context.TrySaveChangesAsync(_app.Cts.Token);
            if (result.HasError)
                await Log.ReportErrorFormatAsync(_app.Cts.Token, "Error saving trigger command. {0}", result.Message);
        }