private void ManagePageTemplateFolders(PageTemplate template, FolderManagingType type) { var stageDirectory = template.Site.StageDirectory + Path.DirectorySeparatorChar + template.TemplateFolder; var liveDirectory = template.Site.LiveDirectory + Path.DirectorySeparatorChar + template.TemplateFolder; switch (type) { case FolderManagingType.CreateFolder: if (!Directory.Exists(stageDirectory)) { Directory.CreateDirectory(stageDirectory); } if (!Directory.Exists(liveDirectory)) { Directory.CreateDirectory(liveDirectory); } break; case FolderManagingType.DeleteFolder: if (!string.IsNullOrWhiteSpace(template.TemplateFolder)) { if (Directory.Exists(stageDirectory)) { Directory.Delete(stageDirectory, true); } if (Directory.Exists(liveDirectory)) { Directory.Delete(liveDirectory, true); } } break; case FolderManagingType.ChangeFolder: var oldTemplate = ReadPageTemplateProperties(template.Id, false); if (oldTemplate == null) { throw new ApplicationException(string.Format(TemplateStrings.TemplateNotFound, template.Id)); } var oldFolder = oldTemplate.TemplateFolder; if (!string.IsNullOrWhiteSpace(oldTemplate.TemplateFolder)) { if (string.IsNullOrWhiteSpace(template.TemplateFolder)) { ManagePageTemplateFolders(oldTemplate, FolderManagingType.DeleteFolder); return; } if (template.TemplateFolder == oldFolder) { return; } var oldStageDirectory = oldTemplate.Site.StageDirectory + Path.DirectorySeparatorChar + oldFolder; var oldLiveDirectory = oldTemplate.Site.LiveDirectory + Path.DirectorySeparatorChar + oldFolder; if (Directory.Exists(oldStageDirectory)) { Directory.Move(oldStageDirectory, stageDirectory); } if (Directory.Exists(oldLiveDirectory)) { Directory.Move(oldLiveDirectory, liveDirectory); } } else if (!string.IsNullOrWhiteSpace(template.TemplateFolder)) { ManagePageTemplateFolders(template, FolderManagingType.CreateFolder); } break; } }
private void ManagePageFolders(Page page, FolderManagingType type) { var stageDirectory = page.PageTemplate.Site.StageDirectory + "\\" + page.PageTemplate.TemplateFolder + "\\" + page.Folder; var liveDirectory = page.PageTemplate.Site.LiveDirectory + "\\" + page.PageTemplate.TemplateFolder + "\\" + page.Folder; if (type == FolderManagingType.CreateFolder) { if (!Directory.Exists(stageDirectory)) { Directory.CreateDirectory(stageDirectory); } if (!Directory.Exists(liveDirectory)) { Directory.CreateDirectory(liveDirectory); } } else if (type == FolderManagingType.DeleteFolder) { if (!string.IsNullOrWhiteSpace(page.Folder)) { if (Directory.Exists(stageDirectory)) { Directory.Delete(stageDirectory, true); } if (Directory.Exists(liveDirectory)) { Directory.Delete(liveDirectory, true); } } } else if (type == FolderManagingType.ChangeFolder) { var oldPage = ReadPageProperties(page.Id, false); if (oldPage == null) { throw new ApplicationException(string.Format(TemplateStrings.PageNotFound, page.Id)); } var oldFolder = oldPage.Folder; if (!string.IsNullOrWhiteSpace(oldFolder)) { if (string.IsNullOrWhiteSpace(page.Folder)) { ManagePageFolders(oldPage, FolderManagingType.DeleteFolder); return; } if (page.Folder == oldFolder) { return; } var oldStageDirectory = oldPage.PageTemplate.Site.StageDirectory + "\\" + oldPage.PageTemplate.TemplateFolder + "\\" + oldFolder; var oldLiveDirectory = oldPage.PageTemplate.Site.LiveDirectory + "\\" + oldPage.PageTemplate.TemplateFolder + "\\" + oldFolder; if (Directory.Exists(oldStageDirectory)) { Directory.Move(oldStageDirectory, stageDirectory); } if (Directory.Exists(oldLiveDirectory)) { Directory.Move(oldLiveDirectory, liveDirectory); } } else if (!string.IsNullOrWhiteSpace(page.Folder)) { ManagePageFolders(page, FolderManagingType.CreateFolder); } } }