public override bool DoBatchDelete()
        {
            using (var trans = DC.BeginTransaction())
            {
                var userorleids = DC.Set <FrameworkUserRole>().AsNoTracking().Where(y => DC.Set <FrameworkRole>().CheckIDs(Ids.ToList(), null).Select(x => x.RoleCode).Contains(y.RoleCode)).Select(x => x.ID);
                foreach (var item in userorleids)
                {
                    FrameworkUserRole f = new FrameworkUserRole {
                        ID = item
                    };
                    DC.DeleteEntity(f);
                }
                DC.SaveChanges();
                base.DoBatchDelete();
                if (MSD.IsValid == true)
                {
                    trans.Commit();
                }
                else
                {
                    trans.Rollback();
                }
            }

            return(base.DoBatchDelete());
        }
        public override bool DoBatchEdit()
        {
            var entityList = DC.Set <FrameworkUser>().AsNoTracking().CheckIDs(Ids.ToList()).ToList();

            foreach (var entity in entityList)
            {
                List <Guid> todelete = new List <Guid>();
                todelete.AddRange(DC.Set <FrameworkUserRole>().AsNoTracking().Where(x => x.UserCode == entity.ITCode).Select(x => x.ID));
                foreach (var item in todelete)
                {
                    DC.DeleteEntity(new FrameworkUserRole {
                        ID = item
                    });
                }

                if (LinkedVM.SelectedRolesCodes != null)
                {
                    foreach (var rolecode in LinkedVM.SelectedRolesCodes)
                    {
                        FrameworkUserRole r = new FrameworkUserRole
                        {
                            RoleCode = rolecode,
                            UserCode = entity.ITCode
                        };
                        DC.AddEntity(r);
                    }
                }
            }
            return(base.DoBatchEdit());
        }
示例#3
0
        public override async Task <bool> DataInit(object allModules, bool IsSpa)
        {
            var state = await base.DataInit(allModules, IsSpa);

            bool emptydb = false;

            try
            {
                emptydb = Set <FrameworkUser>().Count() == 0 && Set <FrameworkUserRole>().Count() == 0;
            }
            catch { }
            if (state == true || emptydb == true)
            {
                //when state is true, means it's the first time EF create database, do data init here
                //当state是true的时候,表示这是第一次创建数据库,可以在这里进行数据初始化
                var user = new FrameworkUser
                {
                    ITCode   = "admin",
                    Password = Utils.GetMD5String("000000"),
                    IsValid  = true,
                    Name     = "Admin"
                };

                var userrole = new FrameworkUserRole
                {
                    UserCode = user.ITCode,
                    RoleCode = "001"
                };

                Set <FrameworkUser>().Add(user);
                Set <FrameworkUserRole>().Add(userrole);
                await SaveChangesAsync();
            }
            return(state);
        }
示例#4
0
        public IActionResult Reg(SimpleReg regInfo)
        {
            var exist = DC.Set <FrameworkUser>().Any(x => x.ITCode.ToLower() == regInfo.ITCode.ToLower());

            if (exist == true)
            {
                ModelState.AddModelError("ITCode", Localizer["Login.ItcodeDuplicate"]);
                return(BadRequest(ModelState.GetErrorJson()));
            }

            var           hasuserrole = DC.Set <FrameworkRole>().Where(x => x.RoleCode == "002").FirstOrDefault();
            FrameworkUser user        = new FrameworkUser
            {
                ITCode   = regInfo.ITCode,
                Name     = regInfo.Name,
                Password = Utils.GetMD5String(regInfo.Password),
                IsValid  = true,
                PhotoId  = regInfo.PhotoId,
            };

            if (hasuserrole != null)
            {
                var userrole = new FrameworkUserRole
                {
                    UserCode = user.ITCode,
                    RoleCode = "002"
                };
                DC.Set <FrameworkUserRole>().Add(userrole);
            }
            DC.Set <FrameworkUser>().Add(user);
            DC.SaveChanges();
            return(Ok());
        }
示例#5
0
        public override async Task <bool> DataInit(object allModules, bool IsSpa)
        {
            var state = await base.DataInit(allModules, IsSpa);

            if (!state)
            {
                state = !Set <FrameworkUser>().Any();
            }
            if (state)
            {
                var user = new FrameworkUser
                {
                    ITCode   = "admin",
                    Password = Utils.GetMD5String("000000"),
                    IsValid  = true,
                    Name     = "Admin"
                };

                var userrole = new FrameworkUserRole
                {
                    User = user,
                    Role = Set <FrameworkRole>().Where(x => x.RoleCode == "001").FirstOrDefault()
                };
                Set <FrameworkUser>().Add(user);
                Set <FrameworkUserRole>().Add(userrole);
                await SaveChangesAsync();
            }
            return(state);
        }
        public override async Task DoAddAsync()
        {
            using (var trans = DC.BeginTransaction())
            {
                if (SelectedRolesCodes != null)
                {
                    foreach (var rolecode in SelectedRolesCodes)
                    {
                        FrameworkUserRole r = new FrameworkUserRole
                        {
                            RoleCode = rolecode,
                            UserCode = Entity.ITCode
                        };
                        DC.AddEntity(r);
                    }
                }
                if (SelectedGroupCodes != null)
                {
                    foreach (var groupcode in SelectedGroupCodes)
                    {
                        FrameworkUserGroup g = new FrameworkUserGroup
                        {
                            GroupCode = groupcode,
                            UserCode  = Entity.ITCode
                        };
                        DC.AddEntity(g);
                    }
                }
                Entity.IsValid  = true;
                Entity.Password = Utils.GetMD5String(Entity.Password);
                await base.DoAddAsync();

                if (MSD.IsValid)
                {
                    trans.Commit();
                }
                else
                {
                    trans.Rollback();
                }
            }
        }
        public override async Task DoEditAsync(bool updateAllFields = false)
        {
            if (FC.ContainsKey("Entity.ITCode"))
            {
                FC.Remove("Entity.ITCode");
            }
            using (var trans = DC.BeginTransaction())
            {
                if (SelectedRolesCodes != null)
                {
                    List <Guid> todelete = new List <Guid>();
                    todelete.AddRange(DC.Set <FrameworkUserRole>().AsNoTracking().Where(x => x.UserCode == Entity.ITCode).Select(x => x.ID));
                    foreach (var item in todelete)
                    {
                        DC.DeleteEntity(new FrameworkUserRole {
                            ID = item
                        });
                    }
                }
                if (SelectedGroupCodes != null)
                {
                    List <Guid> todelete = new List <Guid>();
                    todelete.AddRange(DC.Set <FrameworkUserGroup>().AsNoTracking().Where(x => x.UserCode == Entity.ITCode).Select(x => x.ID));
                    foreach (var item in todelete)
                    {
                        DC.DeleteEntity(new FrameworkUserGroup {
                            ID = item
                        });
                    }
                }
                if (SelectedRolesCodes != null)
                {
                    foreach (var rolecode in SelectedRolesCodes)
                    {
                        FrameworkUserRole r = new FrameworkUserRole
                        {
                            RoleCode = rolecode,
                            UserCode = Entity.ITCode
                        };
                        DC.AddEntity(r);
                    }
                }
                if (SelectedGroupCodes != null)
                {
                    foreach (var groupcode in SelectedGroupCodes)
                    {
                        FrameworkUserGroup g = new FrameworkUserGroup
                        {
                            GroupCode = groupcode,
                            UserCode  = Entity.ITCode
                        };
                        DC.AddEntity(g);
                    }
                }
                await base.DoEditAsync(updateAllFields);

                if (MSD.IsValid)
                {
                    trans.Commit();
                    await Wtm.RemoveUserCache(Entity.ID.ToString());
                }
                else
                {
                    trans.Rollback();
                }
            }
        }