private async Task SelectOperation(DesktopOperation operation)
        {
            if (Shell.Role == ServiceUserRole.Editor && SelectedOperationConfig != null)
            {
                if (!await Shell.ShowWarningAffirmativeDialogAsync
                        ("All unsaved operation configuration changes will be lost. Close window?"))
                {
                    return;
                }
            }

            ClearSelections();

            SelectedOperation = operation;

            SelectedOperationName = SelectedOperation.Name;

            SelectedOperationConfig =
                DeserializeOperationConfigByType(SelectedOperation.ImplementationType, SelectedOperation.Config);
        }
        private async Task CreateOperConfig()
        {
            if (SelectedOperationConfig != null && Shell.Role == ServiceUserRole.Editor)
            {
                if (!await Shell.ShowWarningAffirmativeDialogAsync
                        ("All unsaved operation configuration changes will be lost. Close window?"))
                {
                    return;
                }
            }

            ClearSelections();

            SelectedOperation = new DesktopOperation
            {
                Id   = null,
                Name = "New Operation"
            };

            SelectedOperationName = "New Operation";

            Mode = OperMode.Importer;
        }