///<summary> ///Implements IUserManagemetService.AddDog ///</summary> public void AddDog(DogToBeAdded dogToBeAdded, Guid ownerId) { if (dogToBeAdded.Equals(null)) { throw new ArgumentNullException(); } using (var connection = new SqlConnection(_connectionString)) { connection.Open(); var query = @"INSERT INTO [Dog] (Id, Name, Age, Gender, Breed, Owner, Specifics, ProfilePicturePath, City) VALUES (newid(), @Name, @Age, @Gender, @Breed, @Owner, @Specifics, @ProfilePicturePath, @City)"; var cityId = GetOwnersCityId(connection, ownerId); if (dogToBeAdded.ProfilePicturePath == "") { dogToBeAdded.ProfilePicturePath = _defaultProfilePicture; } var rowsAffected = connection.Execute(query, new { Name = dogToBeAdded.Name, Age = dogToBeAdded.Age, Gender = dogToBeAdded.Gender, Breed = GetBreedId(connection, dogToBeAdded.Breed), Owner = ownerId, Specifics = dogToBeAdded.Specifics, ProfilePicturePath = dogToBeAdded.ProfilePicturePath, City = cityId }); } }
public IActionResult Add([FromBody] DogToBeAdded dogToBeAdded) { try { var userId = User.Identity.GetUserId(); _userManagementService.AddDog(dogToBeAdded, Guid.Parse(userId)); return(Ok(new { Success = true })); } catch (Exception exception) { return(new ObjectResult(new { Error = exception.Message }) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public void AddDog_PostQuerySuccessfullyExecuted_ReturnsOkObjectresult() { var id = Guid.NewGuid(); var dog = new DogToBeAdded(); var userManagementServiceMock = new Mock <IUserManagementService>(); userManagementServiceMock.Setup(x => x.AddDog(dog, id)); var userManagementController = new UserManagementController(userManagementServiceMock.Object); var claims = new List <Claim>() { new Claim(ClaimTypes.NameIdentifier, id.ToString()) }; var identity = new ClaimsIdentity(claims); var claimsPrincipal = new ClaimsPrincipal(identity); var httpContextMock = new Mock <Microsoft.AspNetCore.Http.HttpContext>(); httpContextMock.Setup(c => c.User).Returns(claimsPrincipal); var actionContext = new ActionContext() { ActionDescriptor = new Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor(), RouteData = new Microsoft.AspNetCore.Routing.RouteData() }; actionContext.HttpContext = httpContextMock.Object; var controllerContext = new ControllerContext(actionContext); userManagementController.ControllerContext = controllerContext; var result = userManagementController.Add(dog); Assert.IsTrue(result.GetType() == typeof(OkObjectResult)); }