Exemple #1
0
        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);
                        }
                    }
                }
            }
        }
Exemple #2
0
        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);
            }
        }