public async Task UnAssignManager(AssignManagerRequest req) { var userManager = await _db.GetUserManagerByIds(req.UserId, req.ManagerId); Check.Value(userManager).NotNull("Specified relationship could not be found"); await _db.DeleteUserManager(userManager); }
public async Task AssignManager(AssignManagerRequest req) { var user = await _db.GetUserById(req.UserId); var manager = await _db.GetUserById(req.UserId); var managerRoles = await _db.GetRolesByUserId(req.ManagerId); Check.Value(user).NotNull(UserNotFoundMsg); Check.Value(manager).NotNull("Manager not found"); var managerRole = managerRoles.FirstOrDefault(r => r.Name == "manager"); Check.Value(managerRole).NotNull("User with specified ID is not a manager"); var userManager = new UserManager(req.UserId, req.ManagerId); await _db.InsertUserManager(userManager); }
private async Task CheckAssigning(bool doAssign, int userId, int managerId, bool shouldFail) { var endPath = doAssign ? "assign" : "unassign"; var req = new AssignManagerRequest { ManagerId = managerId, UserId = userId }; using (new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { var amountOfUserManagerRelationshipsBefore = (await Api.ConnectionFactory.GetAllUserManagers()).Count(); var response = await Api.AdminUser.PostAsJsonAsync($"api/v1/user/{endPath}", req); var amountOfUserManagerRelationshipsAfter = (await Api.ConnectionFactory.GetAllUserManagers()).Count(); if (!shouldFail) { response.StatusCode.Should().BeEquivalentTo(200); if (doAssign) { amountOfUserManagerRelationshipsAfter.Should() .BeGreaterThan(amountOfUserManagerRelationshipsBefore); } else { amountOfUserManagerRelationshipsAfter.Should() .BeLessThan(amountOfUserManagerRelationshipsBefore); } } else { response.StatusCode.Should().BeEquivalentTo(400); amountOfUserManagerRelationshipsBefore.Should().Be(amountOfUserManagerRelationshipsAfter); } } }
public async Task UnAssignManager([FromBody] AssignManagerRequest req) { await _userService.UnAssignManager(req); }