예제 #1
0
        static void Main(string[] args)
        {
            IConfiguration Configuration = new ConfigurationBuilder()
                                           .SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location))
#if DEBUG
                                           .AddJsonFile($"appsettings.Development.json", false)
#else
                                           .AddJsonFile("appsettings.json", false)
#endif
                                           .Build();
            var serviceCollection       = new ServiceCollection();
            var profileName             = Configuration.GetValue <string>("VeracodeProfileName");
            var veracodeCredFilePath    = Configuration.GetValue <string>("VeracodeFileLocation");
            var useEnvironmentVariables = Configuration.GetValue <bool>("UseEnvironmentVariables");

            if (useEnvironmentVariables || String.IsNullOrWhiteSpace(veracodeCredFilePath))
            {
                serviceCollection.AddTransient(options => Microsoft.Extensions.Options.Options.Create(
                                                   VeracodeEnvHelper.GetConfiguration()));
            }
            else
            {
                serviceCollection.AddTransient(options => Microsoft.Extensions.Options.Options.Create(
                                                   VeracodeFileHelper.GetConfiguration(veracodeCredFilePath, profileName)));
            }

            serviceCollection.AddScoped <IVeracodeRepository, VeracodeRepository>();
            serviceCollection.AddScoped <IVeracodeService, VeracodeService>();
            serviceCollection.AddScoped <IDscLogic, DscLogic>();
            serviceCollection.AddLogging(loggingBuilder => {
                loggingBuilder.AddNLog("nlog.config");
            });

            _serviceProvider = serviceCollection.BuildServiceProvider();
            _logger          = _serviceProvider.GetService <ILogger <Program> >();
            _dscLogic        = _serviceProvider.GetService <IDscLogic>();

            Parser.Default.ParseArguments <
                TestOptions,
                ScanOptions,
                ConfigureOptions,
                EvaluateOptions,
                MitigationOptions,
                DeleteOptions>(args)
            .MapResult(
                (TestOptions options) => Test(options),
                (ScanOptions options) => Scan(options),
                (ConfigureOptions options) => Configure(options),
                (EvaluateOptions options) => Evaluate(options),
                (MitigationOptions options) => MitigationTemplates(options),
                (DeleteOptions options) => Delete(options),
                errs => HandleParseError(errs));
        }
예제 #2
0
        public void Setup()
        {
            IConfiguration Configuration = new ConfigurationBuilder()
                                           .SetBasePath(Directory.GetCurrentDirectory())
#if DEBUG
                                           .AddJsonFile($"appsettings.Development.json", false)
#else
                                           .AddJsonFile("appsettings.json", false)
#endif
                                           .Build();
            var profileName = Configuration.GetValue <string>("VeracodeProfileName");
            var options     = Options.Create(
                VeracodeFileHelper.GetConfiguration(
                    Configuration.GetValue <string>("VeracodeFileLocation"), profileName));

            _veracodeRepository = new VeracodeRepository(options);


            _veracodeService = new VeracodeService(new Mock <ILogger <VeracodeService> >().Object, _veracodeRepository);
            _dscLogic        = new DscLogic(new Mock <ILogger <DscLogic> >().Object, _veracodeService, _veracodeRepository);
        }