public void AssignPermissions(UserPermAdmDTO user, int loggedUserID) { ValidateAccess(loggedUserID); if (!(user.UserID > 0)) { throw new Exception("Invalid user"); } using (var trans = DbContext.Database.BeginTransaction()) { try { var perms = DbContext.UserPermission.Where(x => x.UserID == user.UserID); DbContext.UserPermission.RemoveRange(perms); DbContext.SaveChanges(); foreach (var perm in user.Permissions) { if (perm.IsAssigned) { DbContext.UserPermission.Add(new UserPermission() { PermissionID = perm.ID, UserID = user.UserID }); } } DbContext.SaveChanges(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw ex; } } }
public IActionResult AssignPermissions([FromBody] UserPermAdmDTO perms) { UserPermissionAdmService.AssignPermissions(perms, LoggedUserID); return(Ok()); }