Example #1
0
        public bool LoadConfig()
        {
            if (Environment.GetEnvironmentVariable(configEnv) != null)
            {
                _configFullPath = Environment.GetEnvironmentVariable(configEnv);
                _isConfigFound  = true;
            }


            if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), configFileName)))
            {
                _configFullPath = Path.Combine(Directory.GetCurrentDirectory(), configFileName);
                _isConfigFound  = true;
            }

            if (!_isConfigFound)
            {
                _configFullPath = Path.Combine(Directory.GetCurrentDirectory(), configFileName);
            }

            if (_neonManager.IsRunningInDocker)
            {
                _configFullPath = Path.Combine("/argon", configFileName);

                if (File.Exists(_configFullPath))
                {
                    _isConfigFound = true;
                }
            }

            _logger.Information($"Loading config [is Docker = {_neonManager.IsRunningInDocker}]  config found: {_isConfigFound}");


            if (!_isConfigFound)
            {
                _config = new ArgonConfig();
                SaveConfig();
            }
            else
            {
                DeserializeConfig();
            }

            CheckEnvVariables();

            if (_neonManager.IsRunningInDocker)
            {
                _config.EngineConfig.HomeDirectory = "/argon";
            }

            _containerBuilder.RegisterInstance(_config);
            SaveConfig();

            return(true);
        }
Example #2
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            _config = Program.ArgonManager.Config;

            services.AddControllers().AddControllersAsServices();

            services.AddOpenApiDocument();

            services.AddWebSockets(options =>
            {
                options.KeepAliveInterval = TimeSpan.FromSeconds(120);
                options.ReceiveBufferSize = 4 * 1024;
            });

            services.AddCors(c =>
            {
                c.AddPolicy("AllowOrigin", options =>
                {
                    options
                    .AllowAnyHeader()
                    .AllowAnyOrigin();
                });
            });



            services.AddSingleton(typeof(ILogger <>), typeof(LoggerEx <>));

            services.AddMediatR(AssemblyUtils.GetAppAssemblies().ToArray());
            services.AddHttpClient();
            services.AddWebSocketManager();

            services.AddMvc().AddNewtonsoftJson(jo =>
            {
                jo.SerializerSettings.ContractResolver = new DefaultContractResolver()
                {
                    NamingStrategy = new SnakeCaseNamingStrategy()
                };
            });


            Program.ArgonManager.ContainerBuilder.Populate(services);

            Program.ArgonManager.Init();

            ApplicationContainer = Program.ArgonManager.Build();

            return(new AutofacServiceProvider(ApplicationContainer));
        }
Example #3
0
 private void DeserializeConfig()
 {
     _config = File.ReadAllText(_configFullPath).FromYaml <ArgonConfig>();
 }
Example #4
0
 public FileSystemManager(ILogger logger, ArgonConfig neonConfig, ISecretKeyManager secretKeyManager)
 {
     _logger           = logger.ForContext <FileSystemManager>();
     _rootDirectory    = neonConfig.EngineConfig.HomeDirectory;
     _secretKeyManager = secretKeyManager;
 }