private static void AddCountries(Dictionary <string, CountryParameter> dic, JArray array) { foreach (var item in array) { var txt = item["id"].ToString(); if (txt.StartsWith("Black.Beard.Calendarium.")) { var ids = txt.Split('.'); var version = item["version"].ToString(); var id = ids[ids.Length - 1]; if (dic.TryGetValue(id, out CountryParameter country)) { country.OnlineVersion = new Version(version); } else { country = new CountryParameter() { Name = id, OnlineVersion = new Version(version), } }; Helper.Parameters.Countries.Add(country); } } }
public static void RefreshConfigCountry(CountryParameter item, DirectoryInfo rootPathTemp) { Output.WriteLine($"{item.Name} updating in the version {item.OnlineVersion}"); // Download Output.WriteLine($"Download"); string filename = Path.Combine(rootPathTemp.FullName, string.Format(@"Black.Beard.Calendarium.{0}.zip", item.Name)); var task = BbClientHttp.DownloadAsync(string.Format(@"https://www.nuget.org/api/v2/package/Black.Beard.Calendarium.{0}/{1}", item.Name, item.OnlineVersion), filename); task.Wait(); // Unzip Output.WriteLine($"Uncompress"); var dir = rootPathTemp.CreateSubdirectory(string.Format(@"Black.Beard.Calendarium.{0}", item.Name)); FileInfo f = new FileInfo(filename); f.UnzipFromFile(dir.FullName); // copy configurations Output.WriteLine($"Save"); DirectoryInfo p = new DirectoryInfo(Path.Combine(dir.FullName, @"content\Configuration\Countries")); var file = p.GetFiles("*.json").FirstOrDefault(); var target = new FileInfo(Path.Combine(Constants.RootPathConfig.FullName, item.Name) + ".json"); if (target.Exists) { target.Delete(); } file.CopyTo(target.FullName); item.LocalVersion = item.OnlineVersion; }