public override void DoEdit(bool updateAllFields = false) { if (SelectedRolesIDs == null || SelectedRolesIDs.Count == 0) { FC.Add("Entity.SelectedRolesIDs.DONOTUSECLEAR", "true"); } else { Entity.UserRoles = new List <FrameworkUserRole>(); SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole { ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x })); } if (SelectedGroupIDs == null || SelectedGroupIDs.Count == 0) { FC.Add("Entity.SelectedGroupIDs.DONOTUSECLEAR", "true"); } else { SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup { ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x })); } base.DoEdit(updateAllFields); }
/// <summary> /// 删除,进行默认的删除操作。子类如有自定义操作应重载本函数 /// </summary> public virtual void DoDelete() { //如果是PersistPoco,则把IsValid设为false,并不进行物理删除 if (typeof(TModel).GetTypeInfo().IsSubclassOf(typeof(PersistPoco))) { FC.Add("Entity.IsValid", 0); (Entity as PersistPoco).IsValid = false; DoEdit(); } //如果是普通的TopBasePoco,则进行物理删除 else if (typeof(TModel).GetTypeInfo().IsSubclassOf(typeof(TopBasePoco))) { DoRealDelete(); } }
public override void DoEdit(bool updateAllFields = false) { if (SelectedStudentMajorsIDs == null || SelectedStudentMajorsIDs.Count == 0) { FC.Add("Entity.SelectedStudentMajorsIDs.DONOTUSECLEAR", "true"); } else { Entity.StudentMajors = new List <StudentMajor>(); SelectedStudentMajorsIDs.ForEach(x => Entity.StudentMajors.Add(new StudentMajor { ID = Guid.NewGuid(), StudentId = x })); } base.DoEdit(updateAllFields); }
public override void DoEdit(bool updateAllFields = false) { if (Entity.IsInside == false) { if (Entity.Url != null && Entity.Url != "") { if (string.IsNullOrEmpty(Entity.Domain) == true) { if (Entity.Url.ToLower().StartsWith("http://") == false && Entity.Url.ToLower().StartsWith("https://") == false && Entity.Url.StartsWith("@") == false) { Entity.Url = "http://" + Entity.Url; } } else { if (Entity.Url.StartsWith("/") == false) { Entity.Url = "/" + Entity.Url; } } } } else { if (string.IsNullOrEmpty(SelectedModule) == false && Entity.FolderOnly == false) { var modules = Wtm.GlobaInfo.AllModule; var ndc = DC.ReCreate(); var actionsInDB = DC.Set <FrameworkMenu>().AsNoTracking().Where(x => x.ParentId == Entity.ID).ToList(); var mo = modules.Where(x => x.FullName == this.SelectedModule && x.IsApi == true).FirstOrDefault(); Entity.ModuleName = mo.ModuleName; Entity.ClassName = mo.FullName; Entity.MethodName = null; var otherActions = mo.Actions; int order = 1; Entity.Children = new List <FrameworkMenu>(); foreach (var action in otherActions) { if (SelectedActionIDs != null && SelectedActionIDs.Contains(action.MethodName)) { Guid aid = action.ID; var adb = actionsInDB.Where(x => x.Url.ToLower() == action.Url.ToLower()).FirstOrDefault(); if (adb != null) { aid = adb.ID; } FrameworkMenu menu = new FrameworkMenu(); menu.FolderOnly = false; menu.IsPublic = false; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.IsInside = true; menu.Domain = Entity.Domain; menu.PageName = action.ActionDes?.Description ?? action.ActionName; menu.ModuleName = action.Module.ModuleName; menu.ActionName = action.ActionDes?.Description ?? action.ActionName; menu.Url = action.Url; menu.ClassName = action.Module.FullName; menu.MethodName = action.MethodName; menu.ID = aid; Entity.Children.Add(menu); } } } else { Entity.Children = null; Entity.Url = null; } } if (FC.ContainsKey("Entity.Children") == false) { FC.Add("Entity.Children", 0); } base.DoEdit(updateAllFields); List <Guid> guids = new List <Guid>(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } AddPrivilege(guids); }
public override void DoEdit(bool updateAllFields = false) { Entity.ICon = $"{IconFont} {IconFontItem}"; FC.Add("Entity.ICon", " "); if (Entity.IsInside == false) { if (Entity.Url != null && Entity.Url != "" && Entity.Url.StartsWith("/") == false) { if (Entity.Url.ToLower().StartsWith("http://") == false && Entity.Url.ToLower().StartsWith("https://") == false) { Entity.Url = "http://" + Entity.Url; } } } else { if (string.IsNullOrEmpty(SelectedModule) == true && Entity.FolderOnly == false) { MSD.AddModelError("SelectedModule", Program._localizer["SelectModule"]); return; } if (string.IsNullOrEmpty(SelectedModule) == false && Entity.FolderOnly == false) { var modules = GlobalServices.GetRequiredService <GlobalData>().AllModule; List <FrameworkAction> otherActions = null; var mainAction = modules.Where(x => x.FullName == this.SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName == "Index").SingleOrDefault(); if (mainAction == null && Entity.ShowOnMenu == true) { MSD.AddModelError("Entity.ModuleId", Program._localizer["NoIndexInModule"]); return; } if (mainAction == null && Entity.ShowOnMenu == false) { var model = modules.Where(x => x.FullName == this.SelectedModule) .FirstOrDefault(); mainAction = new FrameworkAction(); mainAction.Module = model; mainAction.MethodName = null; } Entity.Url = mainAction.Url; Entity.ModuleName = mainAction.Module.ModuleName; Entity.ActionName = mainAction.ActionDes?.Description ?? mainAction.ActionName; Entity.ClassName = mainAction.Module.FullName; Entity.MethodName = null; otherActions = modules.Where(x => x.FullName == this.SelectedModule) .SelectMany(x => x.Actions) .Where(x => x.MethodName != "Index") .ToList(); var actionsInDB = DC.Set <FrameworkMenu>().AsNoTracking().Where(x => x.ParentId == Entity.ID).ToList(); int order = 1; Entity.Children = new List <FrameworkMenu>(); foreach (var action in otherActions) { if (SelectedActionIDs != null && SelectedActionIDs.Contains(action.Url)) { Guid aid = action.ID; var adb = actionsInDB.Where(x => x.Url.ToLower() == action.Url.ToLower()).FirstOrDefault(); if (adb != null) { aid = adb.ID; } var menu = new FrameworkMenu(); menu.FolderOnly = false; menu.IsPublic = false; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.CreateBy = LoginUserInfo.ITCode; menu.CreateTime = DateTime.Now; menu.IsInside = true; menu.DomainId = Entity.DomainId; menu.PageName = action.ActionDes?.Description ?? action.ActionName; menu.ModuleName = action.Module.ModuleName; menu.ActionName = action.ActionDes?.Description ?? action.ActionName; menu.ClassName = action.Module.FullName; menu.MethodName = action.MethodName; menu.Url = action.Url; menu.ID = aid; Entity.Children.Add(menu); } } } else { Entity.Children = null; Entity.Url = null; } } base.DoEdit(); List <Guid> guids = new List <Guid>(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } AddPrivilege(guids); }
public override void DoEdit(bool updateAllFields = false) { List <Guid> guids = new List <Guid>(); if (Entity.IsInside == false) { if (Entity.Url != null && Entity.Url != "") { if (Entity.DomainId == null) { if (Entity.Url.ToLower().StartsWith("http://") == false && Entity.Url.ToLower().StartsWith("https://") == false && Entity.Url.StartsWith("@") == false) { Entity.Url = "http://" + Entity.Url; } } else { if (Entity.Url.StartsWith("/") == false) { Entity.Url = "/" + Entity.Url; } } } } else { if (string.IsNullOrEmpty(SelectedModule) == true && Entity.FolderOnly == false) { MSD.AddModelError("SelectedModule", Program._localizer["SelectModule"]); return; } if (string.IsNullOrEmpty(SelectedModule) == false && Entity.FolderOnly == false) { var modules = GlobalServices.GetRequiredService <GlobalData>().AllModule; var ndc = DC.ReCreate(); var actionsInDB = DC.Set <FrameworkMenu>().AsNoTracking().Where(x => x.ParentId == Entity.ID).ToList(); var mo = modules.Where(x => x.FullName == this.SelectedModule && x.IsApi == true).FirstOrDefault(); Entity.ModuleName = mo.ModuleName; Entity.ClassName = mo.FullName; Entity.MethodName = null; var otherActions = mo.Actions; int order = 1; Entity.Children = new List <FrameworkMenu>(); foreach (var action in otherActions) { if (SelectedActionIDs != null && SelectedActionIDs.Contains(action.MethodName)) { Guid aid = action.ID; var adb = actionsInDB.Where(x => x.Url.ToLower() == action.Url.ToLower()).FirstOrDefault(); if (adb != null) { aid = adb.ID; } else { guids.Add(aid); } FrameworkMenu menu = new FrameworkMenu(); menu.FolderOnly = false; menu.IsPublic = false; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.CreateBy = LoginUserInfo.ITCode; menu.CreateTime = DateTime.Now; menu.IsInside = true; menu.DomainId = Entity.DomainId; menu.PageName = action.ActionDes?.Description ?? action.ActionName; menu.ModuleName = action.Module.ModuleName; menu.ActionName = action.ActionDes?.Description ?? action.ActionName; menu.Url = action.Url; menu.ClassName = action.Module.FullName; menu.MethodName = action.MethodName; menu.ID = aid; Entity.Children.Add(menu); } } } else { Entity.Children = null; Entity.Url = null; } } if (FC.ContainsKey("Entity.Children") == false) { FC.Add("Entity.Children", 0); } base.DoEdit(updateAllFields); AddPrivilege(guids); }
public override void DoEdit(bool updateAllFields = false) { List <Guid> guids = new List <Guid>(); if (Entity.IsInside == false) { if (Entity.Url != null && Entity.Url != "" && Entity.Url.StartsWith("/") == false) { if (Entity.Url.ToLower().StartsWith("http://") == false && Entity.Url.ToLower().StartsWith("https://") == false) { Entity.Url = "http://" + Entity.Url; } } } else { if (string.IsNullOrEmpty(SelectedModule) == true && Entity.FolderOnly == false) { MSD.AddModelError("SelectedModule", Localizer["SelectModule"]); return; } if (string.IsNullOrEmpty(SelectedModule) == false && Entity.FolderOnly == false) { var modules = KnifeVirgo.GlobaInfo.AllModule; List <SimpleAction> otherActions = null; var mainAction = modules.Where(x => x.FullName == this.SelectedModule).SelectMany(x => x.Actions).Where(x => x.MethodName == "Index").FirstOrDefault(); if (mainAction == null && Entity.ShowOnMenu == true) { MSD.AddModelError("Entity.ModuleId", Localizer["NoIndexInModule"]); return; } if (mainAction == null && Entity.ShowOnMenu == false) { var model = modules.Where(x => x.FullName == this.SelectedModule) .FirstOrDefault(); mainAction = new SimpleAction(); mainAction.Module = model; mainAction.MethodName = null; } Entity.Url = mainAction.Url; Entity.ModuleName = mainAction.Module.ModuleName; Entity.ActionName = mainAction.ActionDes?.Description ?? mainAction.ActionName; Entity.ClassName = mainAction.Module.FullName; Entity.MethodName = null; otherActions = modules.Where(x => x.FullName == this.SelectedModule) .SelectMany(x => x.Actions) .Where(x => x.MethodName != "Index") .ToList(); var actionsInDB = DC.Set <FrameworkMenu>().AsNoTracking().Where(x => x.ParentId == Entity.ID).ToList(); int order = 1; Entity.Children = new List <FrameworkMenu>(); foreach (var action in otherActions) { if (SelectedActionIDs != null && SelectedActionIDs.Contains(action.Url)) { Guid aid = action.ID; var adb = actionsInDB.Where(x => x.Url.ToLower() == action.Url.ToLower()).FirstOrDefault(); if (adb != null) { aid = adb.ID; } else { guids.Add(aid); } var menu = new FrameworkMenu(); menu.FolderOnly = false; menu.IsPublic = false; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.IsInside = true; menu.DomainId = Entity.DomainId; menu.PageName = action.ActionDes?.Description ?? action.ActionName; menu.ModuleName = action.Module.ModuleName; menu.ActionName = action.ActionDes?.Description ?? action.ActionName; menu.ClassName = action.Module.FullName; menu.MethodName = action.MethodName; menu.Url = action.Url; menu.ID = aid; Entity.Children.Add(menu); } } } else { Entity.Children = null; Entity.Url = null; } } if (FC.ContainsKey("Entity.Children") == false) { FC.Add("Entity.Children", 0); } base.DoEdit(); AddPrivilege(guids); }
public override void DoEdit(bool updateAllFields = false) { Entity.Icon = $"{IconFont} {IconFontItem}"; FC.Add("Entity.Icon", " "); if (Entity.IsInside == false) { if (Entity.Url != null && Entity.Url != "" && Entity.Url.StartsWith("/") == false) { if (Entity.Url.ToLower().StartsWith("http://") == false && Entity.Url.ToLower().StartsWith("https://") == false) { Entity.Url = "http://" + Entity.Url; } } if (Entity.Url != null) { Entity.Url = Entity.Url.TrimEnd('/'); } } else { if (string.IsNullOrEmpty(SelectedModule) == false && Entity.FolderOnly == false) { var modules = Wtm.GlobaInfo.AllModule; var m = Utils.ResetModule(modules, false); var actionPage = m.Where(x => x.FullName == this.SelectedModule) .SelectMany(x => x.Actions).Where(x => x.MethodName == "Index" || x.ActionDes?.IsPage == true) .FirstOrDefault(); if (actionPage == null && Entity.ShowOnMenu == true) { MSD.AddModelError("Entity.ModuleId", Localizer["_Admin.NoIndexInModule"]); return; } List <SimpleAction> otherActions = null; var mainModule = m.Where(x => x.FullName == this.SelectedModule).FirstOrDefault(); if (actionPage == null) { actionPage = new SimpleAction { Module = mainModule, Url = "/" + mainModule.ClassName, ActionName = mainModule.ModuleName }; } var mainAction = actionPage; Entity.Url = mainAction.Url; Entity.ModuleName = mainModule.ModuleName; Entity.ActionName = mainAction.ActionDes?.Description ?? mainAction.ActionName; Entity.ClassName = mainModule.FullName; Entity.MethodName = null; otherActions = m.Where(x => x.FullName == this.SelectedModule) .SelectMany(x => x.Actions) .Where(x => x.MethodName != mainAction.MethodName) .ToList(); var actionsInDB = DC.Set <FrameworkMenu>().AsNoTracking().Where(x => x.ParentId == Entity.ID).ToList(); int order = 1; Entity.Children = new List <FrameworkMenu>(); foreach (var action in otherActions) { if (SelectedActionIDs != null && SelectedActionIDs.Contains(action.Url)) { Guid aid = action.ID; var adb = actionsInDB.Where(x => x.Url.ToLower() == action.Url.ToLower()).FirstOrDefault(); if (adb != null) { aid = adb.ID; } var menu = new FrameworkMenu(); menu.FolderOnly = false; menu.IsPublic = Entity.IsPublic; menu.Parent = Entity; menu.ShowOnMenu = false; menu.DisplayOrder = order++; menu.Privileges = new List <FunctionPrivilege>(); menu.IsInside = true; menu.Domain = Entity.Domain; menu.PageName = action.ActionDes?.Description ?? action.ActionName; menu.ModuleName = mainModule.ModuleName; menu.ActionName = action.ActionDes?.Description ?? action.ActionName; menu.ClassName = mainModule.FullName; menu.MethodName = action.MethodName; menu.Url = action.Url; menu.ID = aid; Entity.Children.Add(menu); } } } else { //Entity.Children = new List<FrameworkMenu>(); Entity.Url = null; } } if (Entity.FolderOnly == false) { if (FC.ContainsKey("Entity.Children") == false) { FC.Add("Entity.Children", 0); FC.Add("Entity.Children[0].IsPublic", 0); FC.Add("Entity.Children[0].PageName", 0); FC.Add("Entity.Children[0].ModuleName", 0); FC.Add("Entity.Children[0].ActionName", 0); FC.Add("Entity.Children[0].ClassName", 0); FC.Add("Entity.Children[0].MethodName", 0); FC.Add("Entity.Children[0].Url", 0); } } FC.Add("Entity.ModuleName", 0); base.DoEdit(); List <Guid> guids = new List <Guid>(); guids.Add(Entity.ID); if (Entity.Children != null) { guids.AddRange(Entity.Children?.Select(x => x.ID).ToList()); } AddPrivilege(guids); }