private void SetupBrand() { Config config = ConfigManager.CurrentConfig; List <RepoInfo> folders; lock (this.repoLock) { folders = config.Folders.ToList(); } foreach (RepoInfo folder in folders) { List <BrandFile> files = new List <BrandFile>(); ClientBrand clientBrand = new ClientBrand(); if (clientBrand.SetupServer(folder.Credentials)) { bool success = true; foreach (string path in clientBrand.PathList) { DateTime date; if (!clientBrand.GetFileDateTime(path, out date)) { success = false; break; } string pathname = Path.Combine(config.GetConfigPath(), this.BrandConfigFolder, path.Substring(1)); Directory.CreateDirectory(Path.GetDirectoryName(pathname)); try { using (FileStream output = File.OpenWrite(pathname)) { if (!clientBrand.GetFile(path, output)) { success = false; break; } } } catch (Exception e) { Logger.Error(string.Format("Fail to update the cilent brand file {0}: {1}", pathname, e)); success = false; break; } BrandFile file = new BrandFile(); file.Date = date; file.Path = path; files.Add(file); } if (success) { config.Brand = new Brand(); config.Brand.Server = folder.Address; config.Brand.Files = files; lock (this.repoLock) { config.Save(); } return; } } } config.Brand = null; lock (this.repoLock) { config.Save(); } }
private void SetupBrand() { Config config = ConfigManager.CurrentConfig; List<RepoInfo> folders; lock (this.repoLock) { folders = config.Folders.ToList(); } foreach (RepoInfo folder in folders) { List<BrandFile> files = new List<BrandFile>(); ClientBrand clientBrand = new ClientBrand(); if (clientBrand.SetupServer(folder.Credentials)) { bool success = true; foreach (string path in clientBrand.PathList) { DateTime date; if (!clientBrand.GetFileDateTime(path, out date)) { success = false; break; } string pathname = Path.Combine(config.GetConfigPath(), this.BrandConfigFolder, path.Substring(1)); Directory.CreateDirectory(Path.GetDirectoryName(pathname)); try { using (FileStream output = File.OpenWrite(pathname)) { if (!clientBrand.GetFile(path, output)) { success = false; break; } } } catch (Exception e) { Logger.Error(string.Format("Fail to update the cilent brand file {0}: {1}", pathname, e)); success = false; break; } BrandFile file = new BrandFile(); file.Date = date; file.Path = path; files.Add(file); } if (success) { config.Brand = new Brand(); config.Brand.Server = folder.Address; config.Brand.Files = files; lock (this.repoLock) { config.Save(); } return; } } } config.Brand = null; lock (this.repoLock) { config.Save(); } }
private bool CheckBrand(bool checkFiles) { Config config = ConfigManager.CurrentConfig; if (config.Brand == null || config.Brand.Server == null) { return(false); } ClientBrand clientBrand = new ClientBrand(); foreach (string path in clientBrand.PathList) { if (!File.Exists(Path.Combine(config.GetConfigPath(), this.BrandConfigFolder, path.Substring(1)))) { return(false); } } List <RepoInfo> folders; lock (this.repoLock) { folders = config.Folders.ToList(); } foreach (RepoInfo folder in folders) { if (folder.Address.ToString() != config.Brand.Server.ToString()) { continue; } if (!checkFiles) { return(true); } if (clientBrand.SetupServer(folder.Credentials)) { bool success = true; foreach (string path in clientBrand.PathList) { DateTime date; if (!clientBrand.GetFileDateTime(path, out date)) { success = false; break; } BrandFile file = config.Brand.Files.Find((BrandFile current) => { return(current.Path == path); }); if (file == null || file.Date != date) { success = false; break; } } if (success) { return(true); } } } return(false); }
private bool CheckBrand(bool checkFiles) { Config config = ConfigManager.CurrentConfig; if (config.Brand == null || config.Brand.Server == null) { return false; } ClientBrand clientBrand = new ClientBrand(); foreach (string path in clientBrand.PathList) { if (!File.Exists(Path.Combine(config.GetConfigPath(), this.BrandConfigFolder, path.Substring(1)))) { return false; } } List<RepoInfo> folders; lock (this.repoLock) { folders = config.Folders.ToList(); } foreach (RepoInfo folder in folders) { if (folder.Address.ToString() != config.Brand.Server.ToString()) { continue; } if (!checkFiles) { return true; } if (clientBrand.SetupServer(folder.Credentials)) { bool success = true; foreach (string path in clientBrand.PathList) { DateTime date; if (!clientBrand.GetFileDateTime(path, out date)) { success = false; break; } BrandFile file = config.Brand.Files.Find((BrandFile current) => { return current.Path == path; }); if (file == null || file.Date != date) { success = false; break; } } if (success) { return true; } } } return false; }