public async Task Post_Should_Add_User_Client() { var createUserClientDto = new CreateUserClientDto() { ClientPublicId = _jimmyClient.PublicId, IsActif = true }; var httpResponseMessage = await _client.PostAsJsonAsync("usersClients", createUserClientDto); Assert.AreEqual(HttpStatusCode.Created, httpResponseMessage.StatusCode); Assert.IsTrue(httpResponseMessage.Headers.Contains("location")); var location = httpResponseMessage.Headers.GetValues("location").Single(); Assert.IsTrue(location.Length > 0); var userClientId = Int32.Parse(location.Split('/', StringSplitOptions.RemoveEmptyEntries).Last()); using (var context = new DaOAuthContext(_dbContextOptions)) { var myCreatedUserClient = context.UsersClients.SingleOrDefault(uc => uc.Id.Equals(userClientId)); Assert.IsNotNull(myCreatedUserClient); Assert.AreEqual(myCreatedUserClient.ClientId, _jimmyClient.Id); } }
public IActionResult Post(CreateUserClientDto toCreate) { toCreate.UserName = User.Identity.Name; var createdId = _service.CreateUserClient(toCreate); var currentUrl = Request.GetDisplayUrl(); return(Created($"{currentUrl}/{createdId}", null)); }
public int CreateUserClient(CreateUserClientDto toCreate) { Validate(toCreate); var id = 0; var local = GetErrorStringLocalizer(); using (var context = RepositoriesFactory.CreateContext()) { var userClientRepo = RepositoriesFactory.GetUserClientRepository(context); var clientRepo = RepositoriesFactory.GetClientRepository(context); var userRepo = RepositoriesFactory.GetUserRepository(context); var user = userRepo.GetByUserName(toCreate.UserName); if (user == null || !user.IsValid) { throw new DaOAuthServiceException(local["CreateUserClientInvalidUserName"]); } var client = clientRepo.GetByPublicId(toCreate.ClientPublicId); if (client == null || !client.IsValid) { throw new DaOAuthServiceException(local["CreateUserClientInvalidClientPublicId"]); } var uc = userClientRepo.GetUserClientByClientPublicIdAndUserName(toCreate.ClientPublicId, toCreate.UserName); if (uc != null) { throw new DaOAuthServiceException(local["CreateUserClientClientAlreadyRegister"]); } id = userClientRepo.Add(new UserClient() { ClientId = client.Id, CreationDate = DateTime.Now, IsActif = toCreate.IsActif, UserId = user.Id }); context.Commit(); } return(id); }