public IActionResult PostDog([FromBody] CreateDogDto dog) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var createdDog = _dogService.Add(dog); return(CreatedAtAction("GetDog", new { id = createdDog.Id }, createdDog)); }
public DogDto Add(CreateDogDto dog) { var d = _mapper.Map <CreateDogDto, DogEntity>(dog); var size = _dogRepository.GetSize(dog.SizeId); d.Size = size; var added = _dogRepository.Add(d); return(_mapper.Map <DogEntity, DogDto>(added)); }
public async Task<IActionResult> CreateDog([FromBody] CreateDogDto dogDto) { var dog = new Dog { Barks = dogDto.Barks, Name = dogDto.Name, PottyTrained = dogDto.PottyTrained }; await _animalService.InsertDogAsync(dog); _memoryCache.Remove(CacheKeys.AllDogs); // Debatable if you want to do a fetch from the cache or a fetch directly from the db. This all depends on your configuration var returningDog = (await GetAllDogsFromCacheAsync()).FirstOrDefault(x => x.Id == dog.Id); return base.CreatedAtRoute(nameof(GetDog), new { id = dog.Id }, returningDog); }
public async Task PersistDog_EmptyNameThrowsError() { var toInsert = new CreateDogDto(); var buffer = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(toInsert)); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); var client = Factory.CreateClient(); // Act var responsePost = await client.PostAsync("dogs", byteContent); responsePost.StatusCode.Should().Be(400); }