public async Task <GenericResponse <object> > AddRole(AddRemoveRoleDto addRemoveRoleDto) { try { var user = await _userRepository.FindById(addRemoveRoleDto.UserId); if (user is null) { return(new GenericResponse <object>(new object(), false).AddErrorMessage("User doesn't exists")); } var role = await _roleRepository.FindById(addRemoveRoleDto.RoleId); user.AddToRole(role); await _userRepository.UnitOfWork.Commit(); return(new GenericResponse <object>(new object()).AddInfoMessage("Successfully added")); } catch (Exception) { await _userRepository.UnitOfWork.Rollback(); throw; } }
public async Task <GenericResponse <object> > RemoveRole(AddRemoveRoleDto removeRoleDto) { try { var user = await _userRepository.FindById(removeRoleDto.UserId); if (user is null) { return(new GenericResponse <object>(new object(), false).AddErrorMessage("User doesn't exists")); } var role = await _roleRepository.FindById(removeRoleDto.RoleId); var removed = user.RemoveRole(role); await _userRepository.UnitOfWork.Commit(); var response = new GenericResponse <object>(new object(), removed); if (removed) { response.AddInfoMessage("Successfully removed"); } else { response.AddErrorMessage("Cannot remove - check if role exists"); } return(response); } catch (Exception) { await _userRepository.UnitOfWork.Rollback(); throw; } }