Microsoft.Web.Administration.JexusServerManager.LoadAsync C# (CSharp) Метод

LoadAsync() публичный Метод

public LoadAsync ( ) : System.Threading.Tasks.Task
Результат System.Threading.Tasks.Task
        public async Task LoadAsync()
        {
            SortedDictionary<string, List<string>> variables = null;
            if (Credentials == null)
            {
                var lines = File.ReadAllLines("jws.conf");
                variables = new SortedDictionary<string, List<string>>();
                foreach (var line in lines)
                {
                    var index = line.IndexOf('#');
                    var content = index == -1 ? line : line.Substring(0, index);
                    var parts = content.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts.Length != 2)
                    {
                        continue;
                    }

                    var key = parts[0].Trim().ToLowerInvariant();
                    var value = parts[1].Trim();
                    if (variables.ContainsKey(key))
                    {
                        variables[key].Add(value);
                    }
                    else
                    {
                        variables.Add(key, new List<string> { value });
                    }
                }
            }
            else
            {
                using (var client = GetClient())
                {
                    HttpResponseMessage response = await client.GetAsync("api/server/");
                    if (response.IsSuccessStatusCode)
                    {
                        variables = (SortedDictionary<string, List<string>>)await response.Content.ReadAsAsync(typeof(SortedDictionary<string, List<string>>));
                    }
                }
            }

            var newPool = new ApplicationPool(null, ApplicationPools);
            newPool.Name = "DefaultAppPool";
            newPool.ManagedRuntimeVersion = variables.Load(new List<string> { "v2.0" }, "runtime")[0];
            newPool.ProcessModel.MaxProcesses = long.Parse(variables.Load(new List<string> { "1" }, "httpd.processes")[0]);
            newPool.ProcessModel.UserName = variables.Load(new List<string> { string.Empty }, "httpd.user")[0];
            newPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
            ApplicationPools.Add(newPool);

            SiteFolder = variables.Load(new List<string> { "siteconf" }, "siteconfigdir")[0];
            LogFolder = variables.Load(new List<string> { "log" }, "sitelogdir")[0];
            _certificateCache = variables.Load(new List<string> { string.Empty }, "certificatefile")[0];
            _keyCache = variables.Load(new List<string> { string.Empty }, "certificatekeyfile")[0];

            IEnumerable<string> sites = null;
            if (Credentials == null)
            {
                sites = Directory.GetFiles(SiteFolder).Where(name => !name.Contains("_"));
            }
            else
            {
                using (var client = GetClient())
                {
                    HttpResponseMessage response = await client.GetAsync("api/site/");
                    if (response.IsSuccessStatusCode)
                    {
                        sites = (List<string>)await response.Content.ReadAsAsync(typeof(List<string>));
                    }
                }
            }

            long count = 0;
            Debug.Assert(sites != null, "sites != null");
            foreach (var file in sites)
            {
                var site = Credentials == null
                               ? new Site(Sites) { Name = Path.GetFileName(file), Id = count }
                               : new Site(Sites) { Name = file, Id = count };
                Sites.Add(site);
                count = await LoadAsync(site, count, file, SiteFolder);
            }

            Extra = variables;
        }

Same methods

JexusServerManager::LoadAsync ( Application application, string file, string appName, SortedDictionary variables ) : System.Threading.Tasks.Task
JexusServerManager::LoadAsync ( Site site, long count, string file, string siteFolder ) : Task