Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /// <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();
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }