public ActionResult Delete(int id, string Title)
        {
            if (CheckPermissions(id) == false)
            {
                return(Redirect("~/Account/LogOn?returnUrl=/Admin"));
            }

            if (id == 0)
            {
                RedirectToAction("View", new { id = id });
            }
            if (id == 1)
            {
                throw new NotImplementedException("Can't delete root page");
            }

            AbstractPage ap     = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == id);
            int          parent = ap.ParentID;

            ap.OnDelete();
            DeleteChildPages(ap);
            _db.Entry(ap).State = EntityState.Deleted;
            _db.SaveChanges();

            ap.OnDeleted();

            CleanCache.CleanCacheAfterPageEdit();

            return(RedirectToAction("View", new { id = parent }));
        }
Beispiel #2
0
 public ActionResult AplicationClear(bool Memory, bool Search, bool Images, bool Scripts, bool Styles)
 {
     if (LS.CurrentUser.RolesList.Contains("DomainAdmin"))
     {
         if (Memory)
         {
             CleanCache.CleanOutputCache();
             CleanCache.CleanSettingsCache();
         }
     }
     else
     {
         if (Memory)
         {
             CleanCache.RestartApplication();
         }
     }
     if (Search)
     {
         CleanCache.CleanSearchCache();
     }
     if (Images)
     {
         CleanCache.CleanImageCache();
     }
     if (Scripts)
     {
         ScriptHelper.ClearCache();
     }
     if (Styles)
     {
         StyleHelper.ClearCache();
     }
     return(RedirectToAction("AplicationClearDone"));
 }
        public ActionResult Edit(int ID, Settings item, List <string> Roles)
        {
            if (ModelState.IsValid)
            {
                List <string> DomainRoles = SF.GetRoleObjectsList().Where(r => r.IsSystem == true).Select(r => r.Title).ToList();
                if (Roles != null)
                {
                    DomainRoles.AddRange(Roles);
                }
                item.Roles = SF.RolesListToString(DomainRoles);

                _db.Entry(item).State = EntityState.Modified;
                _db.SaveChanges();

                //update lang name of pages
                AbstractPage ap = _db.AbstractPages.FirstOrDefault(r => r.ID == item.DomainPageID);
                SF.SetLanguageCode(ap, 100, item.LanguageCode);

                CleanCache.CleanOutputCache();
                CleanCache.CleanSettingsCache();
                CleanCache.CleanMenuCache();

                return(RedirectToAction("Index"));
            }
            item.Roles = SF.RolesListToString(Roles);
            return(View(item));
        }
 public ActionResult _AjaxDelete(User item, [DataSourceRequest] DataSourceRequest request)
 {
     if (ModelState.IsValid)
     {
         _db.Users.Remove(_db.Users.First(r => r.ID == item.ID));
         _db.SaveChanges();
         CleanCache.CleanOutputCache();
     }
     return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
 }
 public ActionResult _AjaxDelete(Newsletter item, [DataSourceRequest] DataSourceRequest request)
 {
     if (ModelState.IsValid)
     {
         _db.Newsletters.Remove(_db.Newsletters.First(r => (CurrentUser.RoleDefault == "Admin" ? true : (r.RoleDefault == CurrentUser.RoleDefault)) && r.ID == item.ID));
         _db.SaveChanges();
         CleanCache.CleanOutputCache();
     }
     return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
 }
 public ActionResult _AjaxDelete(Banner item, [DataSourceRequest] DataSourceRequest request)
 {
     if (ModelState.IsValid)
     {
         _db.Banners.Remove(_db.Banners.First(r => r.ID == item.ID && r.DomainID == AdminCurrentSettingsRepository.ID));
         _db.SaveChanges();
         CleanCache.CleanOutputCache();
     }
     return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
 }
        public ActionResult _AjaxDelete(NavigationData item, [DataSourceRequest] DataSourceRequest request)
        {
            if (ModelState.IsValid)
            {
                _db.NavigationDatas.Remove(_db.NavigationDatas.First(r => r.ID == item.ID && r.DomainID == CurrentSettings.ID));
                DeleteChildRows(item.Segment, item.ID, 5);
                _db.SaveChanges();

                CleanCache.CleanOutputCache();
            }
            return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
        }
Beispiel #8
0
        public ActionResult Edit(int ID, ActivityLog item)
        {
            if (ModelState.IsValid)
            {
                _db.Entry(item).State = EntityState.Modified;
                _db.SaveChanges();

                CleanCache.CleanOutputCache();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
Beispiel #9
0
        public ActionResult Create(ActivityLog item)
        {
            if (ModelState.IsValid)
            {
                _db.ActivityLogs.Add(item);
                _db.SaveChanges();

                CleanCache.CleanOutputCache();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
        public ActionResult Create(Banner item)
        {
            if (ModelState.IsValid)
            {
                _db.Banners.Add(item);
                _db.SaveChanges();

                CleanCache.CleanCacheAfterPageEdit();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
        public ActionResult Edit(int ID, Banner item)
        {
            if (ModelState.IsValid)
            {
                item.DomainID         = AdminCurrentSettingsRepository.ID;
                _db.Entry(item).State = EntityState.Modified;
                _db.SaveChanges();

                CleanCache.CleanOutputCache();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
Beispiel #12
0
        public ActionResult Create(TextComponent item)
        {
            if (ModelState.IsValid)
            {
                item.DomainID = CurrentSettings.ID;
                _db.TextComponents.Add(item);
                _db.SaveChanges();

                CleanCache.CleanOutputCache();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
        public ActionResult _AjaxSave([DataSourceRequest] DataSourceRequest request, SearchModel item)
        {
            if (ModelState.IsValid)
            {
                SearchModel obj = _db.SearchModels.Find(item.ID);
                TryUpdateModel(obj);
                _db.Entry(obj).State = EntityState.Modified;
                _db.SaveChanges();

                CleanCache.CleanSearchModelCache();
            }

            return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult _AjaxDelete([DataSourceRequest] DataSourceRequest request, SearchModel item)
        {
            if (ModelState.IsValid)
            {
                SearchModel obj = _db.SearchModels.Find(item.ID);
                _db.Entry(obj).State = EntityState.Deleted;

                DeleteChildRows(obj.LangCode, obj.SearchSegmentName, obj.ID);
                _db.SaveChanges();

                CleanCache.CleanSearchModelCache();
            }

            return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult Edit(Role item, List <string> MenuPermissions)
        {
            if (ModelState.IsValid)
            {
                item.MenuPermissions  = SF.RolesListToString(MenuPermissions);
                _db.Entry(item).State = EntityState.Modified;
                _db.SaveChanges();

                CleanCache.CleanOutputCache();

                TempData["MessageGreen"] = "Done.";
                return(RedirectToAction("Index"));
            }
            item.MenuPermissions = SF.RolesListToString(MenuPermissions);
            return(View(item));
        }
        public ActionResult _AjaxInsert([DataSourceRequest] DataSourceRequest request, SearchModel item)
        {
            if (ModelState.IsValid)
            {
                SearchModel obj = item;
                if (TryUpdateModel(obj))
                {
                    _db.SearchModels.Add(obj);
                    _db.SaveChanges();

                    item.ID = obj.ID;
                    CleanCache.CleanSearchModelCache();
                }
            }

            return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult Index(int DDParent, string DDLangCode, string DDSegment, string SeachText)
        {
            if (!string.IsNullOrEmpty(SeachText))
            {
                foreach (string item in SeachText.Split('\n'))
                {
                    _db.SearchModels.Add(new SearchModel()
                    {
                        LangCode = DDLangCode, SearchSegmentName = DDSegment, ParentID = DDParent, Title = item.Trim().Replace("\r", "")
                    });
                }
                _db.SaveChanges();

                CleanCache.CleanSearchModelCache();
            }

            return(View());
        }
Beispiel #18
0
        public ActionResult Index(int ID, Settings s, int DomainPageID)
        {
            if (ModelState.IsValid)
            {
                if (SF.UseMultiDomain())
                {
                    s.Domain = "Default";
                }
                _db.Entry(s).State = EntityState.Modified;
                _db.SaveChanges();

                CleanCache.CleanSettingsCache();

                return(RedirectToAction("Index", "Main"));
            }
            else
            {
                return(View(s));
            }
        }
Beispiel #19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PluginBuilder  pb                 = PluginBuilderFactory.newPluginBuilder(Request);
            ParamsProvider provider           = pb.getCustomParamsProvider();
            Dictionary <string, string> param = PluginBuilderFactory.getProperties(Request);

            // Adding - if necessary - CORS headers
            HttpResponse res    = new HttpResponse(this.Response);
            String       origin = this.Request.Headers.Get("origin");

            pb.addCorsHeaders(res, origin);

            CleanCache cleanCache = pb.newCleanCache();

            cleanCache.init(provider);
            string output = cleanCache.getCacheOutput();

            Response.ContentType = cleanCache.getContentType();
            Response.Write(output);
        }
        public ActionResult _AjaxDelete(Settings item, [DataSourceRequest] DataSourceRequest request)
        {
            if (ModelState.IsValid)
            {
                if (_db.SettingsAll.Count() == 1)
                {
                    ModelState.AddModelError("", "Not deleted");
                    return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
                }
                _db.SettingsAll.Remove(_db.SettingsAll.First(r => r.ID == item.ID));

                //delete pages and elements
                foreach (AbstractPage item2 in _db.AbstractPages.Where(r => r.DomainID == item.ID).ToList())
                {
                    _db.Entry(item2).State = EntityState.Modified;
                }
                foreach (TextComponent item2 in _db.TextComponents.Where(r => r.DomainID == item.ID).ToList())
                {
                    _db.Entry(item2).State = EntityState.Modified;
                }
                foreach (Contact item2 in _db.Contacts.Where(r => r.DomainID == item.ID).ToList())
                {
                    _db.Entry(item2).State = EntityState.Modified;
                }
                foreach (Newsletter item2 in _db.Newsletters.Where(r => r.DomainID == item.ID).ToList())
                {
                    _db.Entry(item2).State = EntityState.Modified;
                }

                _db.SaveChanges();

                //delete folders
                System.IO.Directory.Delete(Server.MapPath("~/Content/UserFiles/" + item.ID), true);
                System.IO.Directory.Delete(Server.MapPath("~/App_Data/cache/images/" + item.ID), true);

                CleanCache.CleanOutputCache();
                CleanCache.CleanSettingsAllCache();
            }
            return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult Create(Settings item, List <string> Roles)
        {
            if (ModelState.IsValid)
            {
                if (_db.SettingsAll.Count(r => r.Domain == item.Domain) > 0)
                {
                    ModelState.AddModelError("", "Domain + LanguageCode not unic. Please specify different Domain or LanguageCode");
                    return(View(item));
                }

                string Title = "";
                if (string.IsNullOrEmpty(item.Domain))
                {
                    Title = (_db.AbstractPages.Max(r => r.ID) + 1).ToString();
                }
                else
                {
                    Title = item.Domain;
                }

                DomainPage dp = new DomainPage();
                dp.Title           = Title;
                dp.ParentID        = 0;
                dp.DomainID        = 0;
                dp.SeoUrlName      = (_db.AbstractPages.Max(r => r.ID) + 1).ToString();
                dp.PermissionsView = SF.RolesListToString(new List <string>()
                {
                    "Admin", "Anonymous"
                });
                dp.PermissionsEdit = SF.RolesListToString(new List <string>()
                {
                    "Admin"
                });
                _db.DomainPages.Add(dp);
                _db.SaveChanges();

                List <string> DomainRoles = SF.GetRoleObjectsList().Where(r => r.IsSystem == true).Select(r => r.Title).ToList();
                if (Roles != null)
                {
                    DomainRoles.AddRange(Roles);
                }
                item.Roles        = SF.RolesListToString(DomainRoles);
                item.DomainPageID = dp.ID;
                if (string.IsNullOrEmpty(item.Domain))
                {
                    item.Domain = Title;
                }

                _db.SettingsAll.Add(item);
                _db.SaveChanges();

                dp.DomainID         = item.ID;
                _db.Entry(dp).State = EntityState.Modified;
                _db.SaveChanges();

                System.IO.Directory.CreateDirectory(Server.MapPath("~/Content/UserFiles/" + item.ID));
                System.IO.Directory.CreateDirectory(Server.MapPath("~/App_Data/cache/images/" + item.ID));

                CleanCache.CleanOutputCache();
                CleanCache.CleanSettingsAllCache();

                return(RedirectToAction("Index"));
            }
            return(View(item));
        }
        public ActionResult Create(AbstractPage ap, int id)
        {
            if (ModelState.IsValid)
            {
                if (CheckPermissions(id) == false)
                {
                    return(Redirect("~/Account/LogOn?returnUrl=/Admin"));
                }

                AbstractPage Parent = _db.AbstractPages.FirstOrDefault(r => r.ID == id);
                if (Parent == null)
                {
                    ap.ParentID = 0;
                    ap.DomainID = CurrentSettings.ID;
                    if (ap.RouteUrl != "l")
                    {
                        ap.LanguageCode = CurrentSettings.LanguageCode;
                    }
                }
                else
                {
                    ap.ParentID = Parent.ID;
                    ap.DomainID = Parent.DomainID;
                    if (ap.RouteUrl != "l")
                    {
                        ap.LanguageCode = Parent.LanguageCode;
                    }
                }

                if (ap.SeoUrlName == null || ap.SeoUrlName == "")
                {
                    ap.SeoUrlName = Uco.Infrastructure.SF.CleanUrl(ap.Title);
                }
                else
                {
                    ap.SeoUrlName = Uco.Infrastructure.SF.CleanUrl(ap.SeoUrlName);
                }

                if (_db.AbstractPages.Count(r => r.DomainID == ap.DomainID && r.SeoUrlName == ap.SeoUrlName) != 0)
                {
                    ModelState.AddModelError("SeoUrlName", "Title not unic. Please specify Url Name different from title");
                    return(View(ap));
                }
                ap.CreateTime = DateTime.Now;
                if (_db.AbstractPages.Where(r => r.ParentID == ap.ParentID && r.DomainID == ap.DomainID).Count() == 0)
                {
                    ap.Order = 1;
                }
                else
                {
                    ap.Order = _db.AbstractPages.Where(r => r.ParentID == ap.ParentID && r.DomainID == ap.DomainID).Max(r => r.Order) + 1;
                }
                ap.OnCreate();
                _db.AbstractPages.Add(ap);

                try
                {
                    _db.SaveChanges();
                }
                catch (DataException error)
                {
                    //Log the error (add a variable name after DataException)
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator. Error:" + error.Message + ". Data:" + error.Data);
                    View(ap);
                }

                ap.OnCreated();

                CleanCache.CleanCacheAfterPageEdit();

                return(RedirectToAction("View", new { id = ap.ID }));
            }
            return(View(ap));
        }
        public ActionResult _TreeDrop(int item, int destinationitem, string position)
        {
            if (CheckPermissions(item) == false || CheckPermissions(destinationitem) == false)
            {
                return(Content("false"));
            }

            AbstractPage ItemPage            = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == item);
            AbstractPage DestinationItemPage = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == destinationitem);

            if (ItemPage.ParentID == 0 || ItemPage.RouteUrl == "d")
            {
                return(Content("false"));
            }

            if (position == "over")
            {
                Type t = ItemPage.GetType();
                if (GetChildClasses(destinationitem).Contains(t))
                {
                    AbstractPage Parent = _db.AbstractPages.FirstOrDefault(r => r.ID == destinationitem);
                    ItemPage.ParentID = Parent.ID;
                    ItemPage.DomainID = Parent.DomainID;
                    if (ItemPage.RouteUrl != "l")
                    {
                        ItemPage.LanguageCode = Parent.LanguageCode;
                    }

                    _db.Entry(ItemPage).State = EntityState.Modified;
                    _db.SaveChanges();

                    CleanCache.CleanCacheAfterPageEdit();

                    return(Content("true"));
                }
                else
                {
                    return(Content("false"));
                }
            }
            else if (position == "before")
            {
                if (DestinationItemPage.ID == 1)
                {
                    return(Content("false"));
                }
                if (GetChildClasses((int)DestinationItemPage.ParentID).Contains(ItemPage.GetType()))
                {
                    ItemPage.ParentID         = DestinationItemPage.ParentID;
                    ItemPage.Order            = DestinationItemPage.Order;
                    _db.Entry(ItemPage).State = EntityState.Modified;

                    foreach (AbstractPage item2 in _db.AbstractPages.Where(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ParentID == (int)DestinationItemPage.ParentID && r.Order >= DestinationItemPage.Order && r.ID != (int)ItemPage.ID))
                    {
                        item2.Order            = item2.Order + 1;
                        _db.Entry(item2).State = EntityState.Modified;
                    }

                    _db.SaveChanges();

                    CleanCache.CleanCacheAfterPageEdit();

                    return(Content("true"));
                }
                else
                {
                    return(Content("false"));
                }
            }
            else if (position == "after")
            {
                if (DestinationItemPage.ID == 1)
                {
                    return(Content("false"));
                }
                if (GetChildClasses((int)DestinationItemPage.ParentID).Contains(ItemPage.GetType()))
                {
                    foreach (AbstractPage item2 in _db.AbstractPages.Where(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ParentID == (int)DestinationItemPage.ParentID && r.Order >= DestinationItemPage.Order && r.ID != (int)DestinationItemPage.ID))
                    {
                        item2.Order            = item2.Order + 2;
                        _db.Entry(item2).State = EntityState.Modified;
                    }

                    ItemPage.ParentID         = DestinationItemPage.ParentID;
                    ItemPage.Order            = DestinationItemPage.Order + 1;
                    _db.Entry(ItemPage).State = EntityState.Modified;

                    _db.SaveChanges();

                    CleanCache.CleanCacheAfterPageEdit();

                    return(Content("true"));
                }
                else
                {
                    return(Content("false"));
                }
            }

            return(Content("false"));
        }
        public ActionResult Edit(AbstractPage ap, int id, bool?red)
        {
            if (ModelState.IsValid)
            {
                if (CheckPermissions(id) == false)
                {
                    return(Redirect("~/Account/LogOn?returnUrl=/Admin"));
                }

                if (ap.SeoUrlName == null || ap.SeoUrlName == "")
                {
                    ap.SeoUrlName = Uco.Infrastructure.SF.CleanUrl(ap.Title);
                }
                else
                {
                    ap.SeoUrlName = Uco.Infrastructure.SF.CleanUrl(ap.SeoUrlName);
                }

                AbstractPage Parent = _db.AbstractPages.FirstOrDefault(r => r.ID == ap.ParentID);
                if (Parent == null)
                {
                    ap.ParentID = 0;
                    ap.DomainID = AdminCurrentSettingsRepository.ID;
                    if (ap.RouteUrl != "l")
                    {
                        ap.LanguageCode = CurrentSettings.LanguageCode;
                    }
                }
                else
                {
                    ap.ParentID = Parent.ID;
                    ap.DomainID = Parent.DomainID;
                    if (ap.RouteUrl != "l")
                    {
                        ap.LanguageCode = Parent.LanguageCode;
                    }
                }

                if (_db.AbstractPages.Count(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID != ap.ID && r.RouteUrl == ap.RouteUrl && r.SeoUrlName == ap.SeoUrlName) != 0)
                {
                    ModelState.AddModelError("SeoUrlName", "Title not unic. Please specify Url Name different from title");
                    return(View(ap));
                }
                ap.ChangeTime = DateTime.Now;
                ap.OnEdit();

                _db.Entry(ap).State = EntityState.Modified;

                try
                {
                    _db.SaveChanges();
                }
                catch (DataException error)
                {
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator. Error:" + error.Message + ". Data:" + error.Data);
                    return(View(ap));
                }

                ap.OnEdited();

                CleanCache.CleanCacheAfterPageEdit();

                if (red != null && red == true)
                {
                    Response.Redirect(ap.Url);
                }
                else
                {
                    return(RedirectToAction("View", new { id = ap.ID }));
                }
            }
            return(View(ap));
        }
        public ActionResult _TreeCopy(int item, int destinationitem)
        {
            if (CheckPermissions(item) == false || CheckPermissions(destinationitem) == false)
            {
                return(Content(LocalizationHelpers.GetLocalResource("~/Areas/Admin/Views/Shared/_TreeView.cshtml", "ErrorPermitions")));
            }

            AbstractPage ItemPage            = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == item);
            AbstractPage DestinationItemPage = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == destinationitem);

            if (ItemPage.ParentID == 0 || ItemPage.RouteUrl == "d")
            {
                return(Content(LocalizationHelpers.GetLocalResource("~/Areas/Admin/Views/Shared/_TreeView.cshtml", "ErrorDomain")));
            }

            Type t = ItemPage.GetType();

            if (GetChildClasses(destinationitem).Contains(t))
            {
                AbstractPage ap = ItemPage;

                AbstractPage Parent = _db.AbstractPages.FirstOrDefault(r => r.ID == destinationitem);
                ap.ParentID        = Parent.ID;
                ap.DomainID        = Parent.DomainID;
                ap.PermissionsEdit = Parent.PermissionsEdit;
                ap.PermissionsView = Parent.PermissionsView;

                Session["TreeCopy"] = true;

                if (ap.RouteUrl != "l")
                {
                    ap.LanguageCode = Parent.LanguageCode;
                }

                ap.Title      = ap.Title + "-Copy";
                ap.SeoUrlName = (_db.AbstractPages.Max(r => r.ID) + 1).ToString();

                if (_db.AbstractPages.Count(r => r.DomainID == ap.DomainID && r.SeoUrlName == ap.SeoUrlName) != 0)
                {
                    return(Content(LocalizationHelpers.GetLocalResource("~/Areas/Admin/Views/Shared/_TreeView.cshtml", "ErrorTitle")));
                }
                ap.CreateTime = DateTime.Now;
                if (_db.AbstractPages.Where(r => r.ParentID == ap.ParentID && r.DomainID == ap.DomainID).Count() == 0)
                {
                    ap.Order = 1;
                }
                else
                {
                    ap.Order = _db.AbstractPages.Where(r => r.ParentID == ap.ParentID && r.DomainID == ap.DomainID).Max(r => r.Order) + 1;
                }
                ap.OnCreate();
                _db.AbstractPages.Add(ap);

                try
                {
                    _db.SaveChanges();
                }
                catch (DataException error)
                {
                    return(Content(LocalizationHelpers.GetLocalResource("~/Areas/Admin/Views/Shared/_TreeView.cshtml", "ErrorGeneral") + error.Message));
                }

                AbstractPage CopyItem = _db.AbstractPages.FirstOrDefault(r => r.DomainID == AdminCurrentSettingsRepository.ID && r.ID == item);
                foreach (AbstractPage item2 in _db.AbstractPages.Where(r => r.ParentID == CopyItem.ID).ToList())
                {
                    CopyPage(ap, item2, 5);
                }

                CleanCache.CleanCacheAfterPageEdit();

                return(Content("true"));
            }
            else
            {
                return(Content(LocalizationHelpers.GetLocalResource("~/Areas/Admin/Views/Shared/_TreeView.cshtml", "ErrorParent")));
            }
        }
        public static void InitDB()
        {
            if (ConfigurationManager.AppSettings["DbMigrations"].ToString() == "true")
            {
                Database.SetInitializer(new Uco.Models.Migrations.DbMigrationsInitializer());

                using (Db _db = new Db())
                {
                    HttpContext.Current.Items["_EntityContext"] = _db;

                    if (!_db.Database.Exists())
                    {
                        _db.Database.Create();
                    }

                    if (_db.SettingsAll.Count() == 0)
                    {
                        //create DomainPage
                        DomainPage lp = new DomainPage();
                        lp.ID              = 1;
                        lp.ParentID        = 0;
                        lp.Title           = "DomainPage";
                        lp.Visible         = true;
                        lp.ShowInSitemap   = true;
                        lp.ShowInMenu      = true;
                        lp.SeoUrlName      = "1";
                        lp.ShowInAdminMenu = true;
                        lp.DomainID        = 1;
                        lp.PermissionsView = SF.RolesListToString(new List <string>()
                        {
                            "Admin", "Anonymous"
                        });
                        lp.PermissionsEdit = SF.RolesListToString(new List <string>()
                        {
                            "Admin"
                        });
                        _db.DomainPages.Add(lp);
                        _db.SaveChanges();

                        //create setting
                        Settings SettingsAll = new Settings();
                        SettingsAll.DomainPageID = lp.ID;
                        SettingsAll.Domain       = "Default";
                        SettingsAll.AdminEmail   = "*****@*****.**";
                        SettingsAll.LanguageCode = ((System.Web.Configuration.GlobalizationSection)ConfigurationManager.GetSection("system.web/globalization")).UICulture;;
                        SettingsAll.Roles        = SF.RolesStringAdd("", "Admin");
                        _db.SettingsAll.Add(SettingsAll);
                        _db.SaveChanges();

                        //create roles
                        _db.Roles.Add(new Role()
                        {
                            IsSystem = true, Title = "Admin"
                        });
                        _db.Roles.Add(new Role()
                        {
                            IsSystem = true, Title = "Anonymous"
                        });
                        _db.SaveChanges();

                        //update settings reference
                        lp.DomainID = SettingsAll.ID;
                        _db.SaveChanges();

                        //create UNIQUE INDEX on SeoUrlName
                        _db.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX IX_AbstractPage_SeoUrlName ON AbstractPages (DomainID,RouteUrl,SeoUrlName)");

                        CleanCache.CleanOutputCache();

                        //create admin user
                        SF.CreateUser("admin", "adminadmin", "*****@*****.**", new List <string>()
                        {
                            "Admin"
                        }, "Admin");
                    }
                }
            }
            else
            {
                Database.SetInitializer <Db>(null);
            }
        }