public async Task SaveAsync()
{
var variables = new SortedDictionary<string, List<string>>();
foreach (var item in Extra)
{
variables.Add(item.Key, item.Value);
}
var pool = ApplicationPools[0];
variables.Add("runtime", new List<string> { pool.ManagedRuntimeVersion });
variables.Add("httpd.processes", new List<string> { pool.ProcessModel.MaxProcesses.ToString() });
variables.Add("httpd.user", new List<string> { pool.ProcessModel.UserName });
variables.Add("siteconfigdir", new List<string> { SiteFolder });
variables.Add("sitelogdir", new List<string> { LogFolder });
variables.Add("certificatefile", new List<string> { _certificateCache });
variables.Add("certificatekeyfile", new List<string> { _keyCache });
if (string.IsNullOrEmpty(HostName))
{
var lines = new List<string>();
foreach (var item in variables)
{
foreach (var line in item.Value)
{
lines.Add(string.Format("{0}={1}", item.Key, line));
}
}
File.WriteAllLines("jws.conf", lines);
}
else
{
using (var client = GetClient())
{
HttpResponseMessage response = await client.PutAsJsonAsync("api/server/", variables);
var content = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
}
}
}
}