public static ProcessResults SaveNewProjectConfig(ProjectConfigItem projectConfig, Action <ProcessTrace, StepNotificationState> onNotificationStateChanged)
 {
     lock (_processSyncLock)
     {
         return(_projectConfigsAPI.SaveNewProjectConfig(projectConfig, onNotificationStateChanged));
     }
 }
        public override Command Create()
        {
            Command command = new Command("init")
            {
                _idOption,
                _descriptionOption,
                _dbTypeOption,
                _serverOption,
                _dbNameOption,
                _usernameOption,
                _passwordOption,
                _backupFolderPathOption,
                _devEnvironmentOption,
                _scriptsBaseFolderPathOption,
                _deployArtifactFolderPathOption,
                _deliveryArtifactFolderPathOption,
            };

            command.Description = CLITextResources.InitCommandDescription;

            command.Handler = CommandHandler
                              .Create((ProjectConfigItem projectConfig) =>
            {
                _consoleProcessMessages.StartProcessMessage("init", projectConfig.Id);

                _consoleProcessMessages.StartSpiiner();
                ProcessResults processResults = _projectConfigsAPI.SaveNewProjectConfig(projectConfig, _consoleProcessMessages.OnNotificationStateChanged);
                _consoleProcessMessages.StopSpinner();

                _consoleProcessMessages.ProcessComplete(processResults);
            });

            return(command);
        }