public static void DeleteDiskFolder(string FullPath, SiteDb SiteDb) { string nonroutable = DiskPathService.GetNonRoutableFolder(FullPath); if (!string.IsNullOrEmpty(nonroutable)) { // delete all routable.. var repo = SiteDb.GetRepository(nonroutable); if (repo != null) { var all = repo.All(); foreach (var item in all) { repo.Delete(item.Id); } } } else { // delete all. var relative = DiskPathService.GetRelativeUrl(SiteDb.WebSite, FullPath); if (!string.IsNullOrEmpty(relative)) { relative = relative.ToLower(); if (!relative.EndsWith("/")) { relative = relative + "/"; } List <Route> routesToRemove = new List <Route>(); foreach (var item in SiteDb.Routes.All()) { if (item.Name.ToLower().StartsWith(relative)) { routesToRemove.Add(item); } } foreach (var item in routesToRemove) { if (item.objectId != default(Guid)) { var repo = SiteDb.GetRepository(item.DestinationConstType); repo.Delete(item.objectId); SiteDb.Routes.Delete(item.Id); } } } } }
public static void DiskFolderRename(SiteDb sitedb, string oldFolder, string NewFolder) { string nonroutable = DiskPathService.GetNonRoutableFolder(NewFolder); if (!string.IsNullOrEmpty(nonroutable)) { return; } string oldrelative = DiskPathService.GetRelativeUrl(sitedb.WebSite, oldFolder); string newrelative = DiskPathService.GetRelativeUrl(sitedb.WebSite, NewFolder); if (!oldrelative.EndsWith("/")) { oldrelative = oldrelative + "/"; } if (!newrelative.EndsWith("/")) { newrelative = newrelative + "/"; } var loweroldrelative = oldrelative.ToLower(); var lowernewrelative = newrelative.ToLower(); List <Route> ChangeRoutes = new List <Route>(); foreach (var item in sitedb.Routes.All()) { if (item.Name.StartsWith(loweroldrelative, StringComparison.OrdinalIgnoreCase)) { ChangeRoutes.Add(item); } } int oldlen = loweroldrelative.Length; foreach (var item in ChangeRoutes) { string newroute = newrelative + item.Name.Substring(oldlen); sitedb.Routes.ChangeRoute(item.Name, newroute); } }