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 })); }
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))); }
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)); }
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)); }
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()); }
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)); } }
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); } }