예제 #1
0
        public DbEntityValidationException AddOrUpdateRole(WdRole model, List <string> propertyNames)
        {
            using (var repo = Repo <RoleRepository>())
            {
                try
                {
                    if (model.Id == Guid.Empty)
                    {
                        var dbModel = repo.CreateDefaultModel();
                        foreach (var propertyName in propertyNames)
                        {
                            dbModel.GetType().GetProperty(propertyName).SetValue(dbModel, model.GetType().GetProperty(propertyName).GetValue(model));
                        }
                        repo.AddOrUpdateDoCommit(dbModel);
                    }
                    else
                    {
                        repo.PartialUpdateDoCommit(model, propertyNames);
                    }

                    GeneralProcess.RefreashRolePermissionsCache();
                }
                catch (DbEntityValidationException ex)
                {
                    return(ex);
                }
            }

            return(null);
        }
예제 #2
0
        public WdRole UpdatePermissions(Guid roleId, List <string> permissions)
        {
            using (var repo = Repo <RoleRepository>())
            {
                var role = repo.GetModelById(roleId);

                role.Permissions.Clear();

                if (permissions != null && permissions.Count > 0)
                {
                    var permissionList = Repo <PermissionRepository>().GetAllModelList();

                    foreach (var permission in permissionList)
                    {
                        if (permissions.Any(obj => obj == permission.Id.ToString()))
                        {
                            role.Permissions.Add(permission);
                        }
                    }
                }

                Commit();

                GeneralProcess.RefreashRolePermissionsCache();

                return(role);
            }
        }
예제 #3
0
        public bool DeleteLampblackUser(Guid userId)
        {
            using (var repo = Repo <LampblackUserRepository>())
            {
                var item = repo.GetModel(obj => obj.Id == userId);
                if (item == null)
                {
                    return(false);
                }

                GeneralProcess.RefreashUserPermissionsCache();

                return(repo.DeleteDoCommit(item));
            }
        }
예제 #4
0
        public Exception AddOrUpdateLampblackUser(LampblackUser model, List <string> propertyNames, List <string> roleList)
        {
            using (var scope = new TransactionScope())
            {
                using (var repo = Repo <LampblackUserRepository>())
                {
                    try
                    {
                        Guid userId;

                        if (model.Id == Guid.Empty)
                        {
                            var dbModel = repo.CreateDefaultModel();
                            foreach (var propertyName in propertyNames)
                            {
                                if (dbModel.GetType().GetProperties().Any(obj => obj.Name == propertyName))
                                {
                                    dbModel.GetType().GetProperty(propertyName).SetValue(dbModel, model.GetType().GetProperty(propertyName).GetValue(model));
                                }
                            }
                            userId = repo.AddOrUpdateDoCommit(dbModel);
                        }
                        else
                        {
                            userId = repo.PartialUpdateDoCommit(model, propertyNames);
                        }

                        var user = repo.GetModelIncludeById(userId, new List <string> {
                            "Roles"
                        });

                        UpdateUserRoles(user, roleList);
                        Commit();
                        GeneralProcess.RefreashUserPermissionsCache();
                    }
                    catch (Exception ex) when(ex is DbUpdateException || ex is DbEntityValidationException)
                    {
                        return(ex);
                    }
                }

                scope.Complete();
                return(null);
            }
        }
예제 #5
0
        public SqlExcuteResult DeleteRole(Guid roleId)
        {
            using (var repo = Repo <RoleRepository>())
            {
                var sqlResult = new SqlExcuteResult()
                {
                    Success = false
                };
                var role = repo.GetModel(obj => obj.Id == roleId);
                if (role == null)
                {
                    return(sqlResult);
                }

                try
                {
                    repo.DeleteDoCommit(role);

                    GeneralProcess.RefreashRolePermissionsCache();
                }
                catch (Exception ex)
                {
                    var innerEx = ex;
                    while (innerEx != null)
                    {
                        var sqlEx = innerEx as SqlException;
                        if (sqlEx != null)
                        {
                            sqlResult.Exception   = sqlEx;
                            sqlResult.ErrorNumber = sqlEx.Number;

                            return(sqlResult);
                        }

                        innerEx = innerEx.InnerException;
                    }

                    throw;
                }

                sqlResult.Success = true;
                return(sqlResult);
            }
        }
예제 #6
0
 public WdUser GetCurrentUser(string loginName)
 => GeneralProcess.GetUserByLoginName(loginName);
예제 #7
0
 public WdUser GetCurrentUser(HttpContext context)
 => GeneralProcess.GetUserByLoginName(context.User.Identity.Name);