예제 #1
0
        public async Task SaveStatusAsync(ConfigStatus status)
        {
            var configPath = CliUtils.GetOsUserConfigFilePath();

            var config = new Config
            {
                Status = status
            };

            await FileUtils.WriteTextAsync(configPath, TranslateUtils.JsonSerialize(config));
        }
예제 #2
0
파일: Program.cs 프로젝트: ooyuan1984/cms-1
        static async Task Main(string[] args)
        {
            try
            {
                Console.OutputEncoding = Encoding.GetEncoding(936);
            }
            catch
            {
                try
                {
                    Console.OutputEncoding = Encoding.UTF8;
                }
                catch
                {
                    // ignored
                }
            }

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            var contentRootPath = Directory.GetCurrentDirectory();

            var profilePath = CliUtils.GetOsUserConfigFilePath();
            var sscmsPath   = PathUtils.Combine(contentRootPath, Constants.ConfigFileName);

            var builder = new ConfigurationBuilder()
                          .SetBasePath(contentRootPath)
                          .AddJsonFile(profilePath, optional: true, reloadOnChange: true)
                          .AddJsonFile(sscmsPath, optional: true, reloadOnChange: true)
                          .AddEnvironmentVariables();

            var configuration = builder.Build();

            Log.Logger = new LoggerConfiguration()
                         .WriteTo.File("logs/cli/log.log", rollingInterval: RollingInterval.Day)
                         .Enrich.FromLogContext()
                         .CreateLogger();

            var services = new ServiceCollection();

            var entryAssembly = Assembly.GetExecutingAssembly();
            var assemblies = new List <Assembly> {
                entryAssembly
            }.Concat(entryAssembly.GetReferencedAssemblies().Select(Assembly.Load));

            var settingsManager = services.AddSettingsManager(configuration, contentRootPath, PathUtils.Combine(contentRootPath, Constants.WwwrootDirectory), entryAssembly);

            services.AddPlugins(configuration, settingsManager);
            //services.AddPluginServices(pluginManager);

            Application = new Application(settingsManager);
            var pluginManager = services.AddPlugins(configuration, settingsManager);

            services.AddSingleton <IConfiguration>(configuration);
            services.AddCache(settingsManager.Redis.ConnectionString);
            services.AddTaskQueue();
            services.AddRepositories(assemblies);
            services.AddServices();
            services.AddCliServices();
            services.AddCliJobs();
            services.AddPluginServices(pluginManager);

            await Application.RunAsync(args);
        }