예제 #1
0
 public CreateCommandOptions(ICreateCommandOptions options)
     : base(options)
 {
     _options = options;
 }
예제 #2
0
        public ExecuteResultEnum Create(ICreateCommandOptions options)
        {
            RunAutoUpdate(options);

            if (_configFile.Exists())
            {
                _reportService.Error($"File already exists: {Configuration.ConfigurationFile}");
                _reportService.Output($"\tPlease run: {Configuration.Name} status");
                return(ExecuteResultEnum.Error);
            }

            if (!options.Silent && !options.Force)
            {
                var proceed = Prompt.GetYesNo("Create a new SpocR Config?", true);
                if (!proceed)
                {
                    return(ExecuteResultEnum.Aborted);
                }
            }

            var targetFramework = options.TargetFramework;

            if (!options.Silent)
            {
                targetFramework = Prompt.GetString("TargetFramework:", targetFramework);
            }

            var appNamespace = options.Namespace;

            if (!options.Silent)
            {
                appNamespace = Prompt.GetString("Your Namespace:", appNamespace);
            }

            // var configurationFileExists = _configuration.FileExists();
            // if(!configurationFileExists)
            // {
            //     var fileName = Extensions.ConfigurationExtensions.FileName;
            //     var proceedAppsettings = Prompt.GetYesNo("Create a new SpocR Config?", true);
            //     if (!proceedAppsettings) return ExecuteResultEnum.Aborted;
            // }

            // Prompt.OnSelection("Please choose an option", )
            // var optionKey = 1;
            // foreach(var identifier in _configuration.GetSection("ConnectionStrings").GetChildren()) {
            //     _reportService.Output($"{optionKey}");
            // }
            var connectionString = "";
            var roleKindString   = options.Role;

            if (!options.Silent)
            {
                roleKindString = Prompt.GetString("SpocR Role [Default, Lib, Extension]:", "Default");
            }
            var roleKind = default(ERoleKind);

            Enum.TryParse(roleKindString, true, out roleKind);

            var libNamespace = options.LibNamespace;

            if (!options.Silent)
            {
                libNamespace = roleKind == ERoleKind.Extension
                        ? Prompt.GetString("SpocR Lib Namespace:", "Nuts.DbContext")
                        : null;
            }

            // var identityKindString = options.Identity;
            // if (!options.Silent)
            // {
            //     identityKindString = Prompt.GetString("SpocR Identity [WithUserId, None]:", "WithUserId");
            // }

            // var identityKind = default(EIdentityKind);
            // Enum.TryParse(identityKindString, true, out identityKind);

            var config = _spocr.GetDefaultConfiguration(targetFramework, appNamespace, connectionString, roleKind, libNamespace /*, identityKind*/);

            if (options.DryRun)
            {
                _reportService.PrintConfiguration(config);
                _reportService.PrintDryRunMessage();
            }
            else
            {
                _configFile.Save(config);
                _projectManager.Create(options);

                if (!options.Silent)
                {
                    _reportService.Output($"{Configuration.Name} successfully created.");
                }
            }

            return(ExecuteResultEnum.Succeeded);
        }