예제 #1
0
        /// <summary>
        /// Copy from file ConfigCli.json to ConfigServer.json
        /// </summary>
        public static void ConfigToServer()
        {
            // Console.WriteLine("Copy runtime specific values from ConfigCli to ConfigServer"); // There is also other values not needed for runtime like DeployAzureGitUrl.
            var configCli    = ConfigCli.Load();
            var configServer = ConfigServer.Load();

            // Environment
            configServer.EnvironmentName             = configCli.EnvironmentGet().EnvironmentName;
            configServer.IsUseDeveloperExceptionPage = configCli.EnvironmentGet().IsUseDeveloperExceptionPage;

            // ConnectionString
            configServer.ConnectionStringFramework   = configCli.EnvironmentGet().ConnectionStringFramework;
            configServer.ConnectionStringApplication = configCli.EnvironmentGet().ConnectionStringApplication;

            // Website
            configServer.WebsiteList.Clear();
            foreach (var webSite in configCli.WebsiteList)
            {
                configServer.WebsiteList.Add(new ConfigServerWebsite()
                {
                    DomainNameList = webSite.DomainNameList.Where(item => item.EnvironmentName == configCli.EnvironmentGet().EnvironmentName).Select(item => new ConfigServerWebsiteDomain {
                        DomainName = item.DomainName, AppTypeName = item.AppTypeName
                    }).ToList()
                });
            }

            ConfigServer.Save(configServer);
        }
예제 #2
0
        /// <summary>
        /// Create default ConfigCli.json file.
        /// </summary>
        public static void Init(AppCli appCli)
        {
            if (!File.Exists(FileName))
            {
                ConfigCli configCli = new ConfigCli();
                configCli.EnvironmentName = configCli.EnvironmentNameGet();
                configCli.EnvironmentList = new List <ConfigCliEnvironment>();
                configCli.WebsiteList     = new List <ConfigCliWebsite>();
                appCli.InitConfigCli(configCli);

                // EnvironmentName defined in WebsiteList
                List <string> environmentNameList = new List <string>();
                foreach (var website in configCli.WebsiteList)
                {
                    foreach (var domainName in website.DomainNameList)
                    {
                        environmentNameList.Add(domainName.EnvironmentName);
                    }
                }
                environmentNameList = environmentNameList.Distinct().ToList();

                // Add missing environments
                foreach (var environmentName in environmentNameList)
                {
                    if (configCli.EnvironmentList.Where(item => item.EnvironmentName == environmentName).FirstOrDefault() == null)
                    {
                        configCli.EnvironmentList.Add(new ConfigCliEnvironment {
                            EnvironmentName = environmentName, IsUseDeveloperExceptionPage = environmentName == "DEV"
                        });
                    }
                }
                UtilFramework.ConfigSave(configCli, FileName);
            }
        }
예제 #3
0
        /// <summary>
        /// Returns ConnectionString of application or framework.
        /// </summary>
        public static string ConnectionString(bool isFrameworkDb)
        {
            var configCli = ConfigCli.Load();

            if (isFrameworkDb == false)
            {
                return(configCli.EnvironmentGet().ConnectionStringApplication);
            }
            else
            {
                return(configCli.EnvironmentGet().ConnectionStringFramework);
            }
        }
예제 #4
0
 /// <summary>
 /// Returns FolderNameServer. For example: "Application.Server/Framework/Application.Website/Layout01/". See also method ConfigServerWebsite.FolderNameServerGet();
 /// </summary>
 public string FolderNameServerGet(ConfigCli configCli)
 {
     return(string.Format("Application.Server/Framework/Application.Website/Layout{0:00}/", configCli.WebsiteList.IndexOf(this) + 1));
 }
예제 #5
0
 internal static void Save(ConfigCli configCli)
 {
     UtilFramework.ConfigSave(configCli, FileName);
 }