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); }
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); } }
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)); } }
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); } }
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); } }
public WdUser GetCurrentUser(string loginName) => GeneralProcess.GetUserByLoginName(loginName);
public WdUser GetCurrentUser(HttpContext context) => GeneralProcess.GetUserByLoginName(context.User.Identity.Name);