private void OnChanged(object source, FileSystemEventArgs e) { // Specify what is done when a file is changed, created, or deleted. var strFileExt = Path.GetExtension(e.FullPath); if (strFileExt != ".docx" && strFileExt != ".doc") { return; } //Console.WriteLine("File: " + e.Name + " " + e.ChangeType); if (e.Name[0].ToString(CultureInfo.InvariantCulture) != "~") { var str = e.FullPath.Split('\\').Reverse().ToArray(); var site = setting.Sites.FirstOrDefault(w => w.SiteName == str[3]); if (site != null) { string categoryName = str[1]; string languageName = str[2]; var fileInfo = new FileInfo(e.FullPath); if (!site.SiteFileInfos.Any(w => e.Name.Contains(w.FileName) && w.CategoryName == categoryName && w.LanguageName == languageName)) { site.SiteFileInfos.Add(new Settings.SiteFileInfo { FileName = e.Name, FilePath = e.FullPath, ChangeDateTime = fileInfo.LastWriteTime, Changed = true, CategoryName = categoryName, Status = Settings.Status.NeedsGeneration, LanguageName = languageName }); } else { var siteFileInfos = site.SiteFileInfos.FirstOrDefault(w => e.FullPath.Contains(w.FilePath) && w.CategoryName == categoryName && w.LanguageName == languageName); if (siteFileInfos != null && fileInfo.LastWriteTime != siteFileInfos.ChangeDateTime) { siteFileInfos.ChangeDateTime = fileInfo.LastWriteTime; siteFileInfos.Changed = true; } } if (e.ChangeType == WatcherChangeTypes.Deleted) { var file = site.SiteFileInfos.FirstOrDefault(w => e.Name.Contains(w.FileName) && w.CategoryName == categoryName && w.LanguageName == languageName); if (file != null) { site.SiteFileInfos.Remove(file); } } Settings.SerializeToXml(setting); LoadList(); } } }
private void btnUpload_Click(object sender, EventArgs e) { foreach (var siteFileInfo in selectedSite.SiteFileInfos.Where(w => w.IsSelected && w.Status == Settings.Status.ReadyToUpload)) { siteFileInfo.IsSelected = false; siteFileInfo.Status = Settings.Status.Uploaded; siteFileInfo.Changed = false; } Settings.SerializeToXml(setting); LoadList(); }
private void OnRenamed(object source, RenamedEventArgs e) { // Specify what is done when a file is renamed. string strFileExt = Path.GetExtension(e.FullPath); if (strFileExt == ".docx" || strFileExt == ".doc") { var str = e.FullPath.Split('\\').Reverse().ToArray(); var site = setting.Sites.FirstOrDefault(w => w.SiteName == str[3]); if (site != null) { string categoryName = str[1]; string languageName = str[2]; var fileInfo = new FileInfo(e.FullPath); if (!site.SiteFileInfos.Any(w => e.Name.Contains(w.FileName) && w.CategoryName == categoryName && w.LanguageName == languageName)) { site.SiteFileInfos.Add(new Settings.SiteFileInfo { FileName = e.Name, FilePath = e.FullPath, ChangeDateTime = fileInfo.LastWriteTime, Changed = true, CategoryName = categoryName, Status = Settings.Status.NeedsGeneration, LanguageName = languageName }); var itemRemove = site.SiteFileInfos.FirstOrDefault( w => w.CategoryName == categoryName && w.LanguageName == languageName && e.OldName.Contains(w.FileName)); if (itemRemove != null) { site.SiteFileInfos.Remove(itemRemove); } } else { var siteFileInfos = site.SiteFileInfos.FirstOrDefault(w => e.FullPath.Contains(w.FilePath) && w.CategoryName == categoryName && w.LanguageName == languageName); if (siteFileInfos != null && fileInfo.LastWriteTime != siteFileInfos.ChangeDateTime) { siteFileInfos.ChangeDateTime = fileInfo.LastWriteTime; siteFileInfos.Changed = true; } } LoadList(); Settings.SerializeToXml(setting); } //Console.WriteLine("File: {0} renamed to {1}", e.OldName, e.Name); } }
private void btnSaveSettings_Click(object sender, EventArgs e) { _setting.LinkTarget = chkLinkTarget.Checked; _setting.LinkRel = chkLinkrel.Checked; if (Settings.SerializeToXml(_setting)) { this.Close(); } else { MessageBox.Show("Unsuccessfull"); } }
private void btnConvert_Click(object sender, EventArgs e) { foreach (var fileInfo in selectedSite.SiteFileInfos.Where(w => w.Changed && w.IsSelected)) { setting.ImageCounter = Utility.ConvertToHtml(Application.StartupPath, fileInfo.FilePath, setting.ImageCounter); var siteFileInfo = selectedSite.SiteFileInfos.FirstOrDefault(w => fileInfo.FilePath.Contains(w.FilePath)); if (siteFileInfo != null) { siteFileInfo.Changed = false; siteFileInfo.Status = Settings.Status.ReadyToUpload; } } Settings.SerializeToXml(setting); LoadList(); }
private void PathAnalyzer() { foreach (var site in setting.Sites) { foreach (var language in site.Languages) { foreach (var category in site.Categories) { var path = Application.StartupPath + "\\sites\\" + site.SiteName + "\\" + language.ShortName + "\\" + category.ShortName; var filePathDocxs = Directory.GetFiles(path, "*.docx", SearchOption.AllDirectories); if (filePathDocxs.Count() <= site.SiteFileInfos.Count) { var removedFiles = site.SiteFileInfos.Where(item => !File.Exists(item.FilePath)).ToList(); foreach (var removedFile in removedFiles) { site.SiteFileInfos.Remove(removedFile); } } foreach (var item in filePathDocxs) { if (!item.Contains("\\s\\img\\")) { var fileInfo = new FileInfo(item); //Console.WriteLine(fileInfo.LastWriteTime); var fileName = Path.GetFileName(item); if (fileName != null && fileName[0].ToString(CultureInfo.InvariantCulture) == "~") { continue; } if (!site.SiteFileInfos.Any(w => item.Contains(w.FilePath))) { site.SiteFileInfos.Add(new Settings.SiteFileInfo { FilePath = item, FileName = Path.GetFileName(item), ChangeDateTime = fileInfo.LastWriteTime, Changed = true, CategoryName = category.Name, LanguageName = language.Name, Status = Settings.Status.NeedsGeneration }); } else { var siteFileInfo = site.SiteFileInfos.FirstOrDefault(w => item.Contains(w.FilePath)); if (siteFileInfo != null && fileInfo.LastWriteTime != siteFileInfo.ChangeDateTime) { siteFileInfo.ChangeDateTime = fileInfo.LastWriteTime; siteFileInfo.Changed = true; } } //Console.WriteLine("Docx - " + Path.GetFileName(item) + " -- " + item); } } FileSystemWatcher(path); } } } LoadList(); Settings.SerializeToXml(setting); }
private void btnSave_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtDomain.Text) || string.IsNullOrEmpty(txtSiteName.Text) || string.IsNullOrEmpty(txtLanguages.Text) || string.IsNullOrEmpty(txtCategories.Text)) { MessageBox.Show("Lütfen boş alanları doldurunuz"); return; } List <Settings.Language> languages = new List <Settings.Language>(); foreach (var language in txtLanguages.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()) { if (language.Split('-').Count() == 2) { languages.Add(new Settings.Language { Name = language.Split('-')[0].Trim(), ShortName = language.Split('-')[1].Trim() } ); } } List <Settings.Category> categories = new List <Settings.Category>(); foreach (var category in txtCategories.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()) { if (category.Split('-').Count() == 2) { categories.Add(new Settings.Category { Name = category.Split('-')[0].Trim(), ShortName = category.Split('-')[1].Trim() } ); } } var siteExist = setting.Sites.FirstOrDefault(w => w.SiteName == txtSiteName.Text.Trim()); if (siteExist != null) { setting.Sites.Remove(siteExist); } setting.Sites.Add(new Settings.Site { SiteName = txtSiteName.Text.Trim(), Domain = txtDomain.Text.Trim(), Categories = categories, Languages = languages }); if (Settings.SerializeToXml(setting)) { Settings.CreatePath("", "sites"); Settings.CreatePath("\\sites\\", txtSiteName.Text); Settings.CreatePath("\\sites\\" + txtSiteName.Text, "s"); Settings.CreatePath("\\sites\\" + txtSiteName.Text + "\\s\\", "img"); Settings.CreatePath("\\sites\\" + txtSiteName.Text + "\\s\\", "js"); Settings.CreatePath("\\sites\\" + txtSiteName.Text + "\\s\\", "css"); foreach (var language in languages) { Settings.CreatePath("\\sites\\" + txtSiteName.Text + "\\", language.ShortName); foreach (var category in categories) { Settings.CreatePath("\\sites\\" + txtSiteName.Text + "\\" + language.ShortName + "\\", category.ShortName); } } //MessageBox.Show("Succesfull"); this.Close(); } else { MessageBox.Show("Unsuccesfull"); } }