public IActionResult addPet(AddPetRequest addRequest) { if (string.IsNullOrEmpty(addRequest.DateRegistered.ToString()) || string.IsNullOrEmpty(addRequest.BreedName.ToString()) || string.IsNullOrEmpty(addRequest.Name.ToString()) || string.IsNullOrEmpty(addRequest.isMale.ToString()) || string.IsNullOrEmpty(addRequest.ApproctimatedDateOfBirth.ToString())) { return(BadRequest("Not enough data")); } var exists = _context.BreedTypes.Where(b => b.Name == addRequest.BreedName).ToList(); //We should check whether a breed of a given pet exists in the database, if it doesn’t we should add a breed to the database first. if (exists.Count == 0) { _context.BreedTypes.Add(new BreedType { Name = addRequest.BreedName, Description = null }); _context.SaveChanges(); } var breedId = _context.BreedTypes.Where(b => b.Name == addRequest.BreedName).Select(b => b.IdBreedType).ToList().First(); _context.Pets.Add(new Pet { Name = addRequest.Name, IdBreedType = breedId, isMale = addRequest.isMale, DateRegistered = addRequest.DateRegistered, ApprocimateDateOfBirth = addRequest.ApproctimatedDateOfBirth }); _context.SaveChanges(); return(Ok(200)); }
public AddPetResponse AddPet(AddPetRequest request) { var response = new AddPetResponse(); var breed = _context.BreedType.FirstOrDefault(b => b.Name == request.BreedName); if (breed == null) { var breed_type = new BreedType() { IdBreedType = _context.Pet.Max(p => p.IdBreedType) + 1, Name = request.BreedName }; _context.BreedType.Add(breed_type); } var pet = new Pet() { IdPet = _context.Pet.Max(p => p.IdPet) + 1, Name = request.Name, IsMale = request.IsMale, DateRegistered = request.DateRegistered, ApproximateDateOfBirth = request.ApproximatedDateOfBirth }; _context.Pet.Add(pet); response.BreedName = request.BreedName; response.Name = pet.Name; response.IsMale = pet.IsMale; response.DateRegistered = pet.DateRegistered; response.ApproximatedDateOfBirth = pet.ApproximateDateOfBirth; _context.SaveChanges(); return(response); }
public async Task ShouldPutAPet() { var pet = new Pet() { Category = new Category() { Id = 0, Name = "Dog" }, Name = "Choupette", Id = 0, PetStatus = PetStatus.Available, Tags = new[] { new Tag() { Id = 0, Name = "Pretty" }, new Tag() { Id = 0, Name = "Ferocious" } }.ToList(), PhotoUrls = new[] { "http://somewhere.com/this.img" } }; var request = new AddPetRequest() { Body = pet }; var httpContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var client = new HttpClient(); var httpResponseMessage = await client.PostAsync($"{_hostUri}/v2/pet", httpContent); Assert.AreEqual(HttpStatusCode.Created, httpResponseMessage.StatusCode); Assert.AreEqual(request.Body, JsonConvert.DeserializeObject <Pet>(await httpResponseMessage.Content.ReadAsStringAsync())); }
public async Task ShouldTryToPutAPetAndFailWithBadRequestInnerProperty() { var pet = new Pet() { Category = new Category() { Id = 0, Name = "Dog" }, PetStatus = PetStatus.Available, Tags = new[] { new Tag() { Id = 0, Name = "Pretty" }, new Tag() { Id = 0, Name = "Ferocious" } }.ToList() }; var request = new AddPetRequest() { Body = pet }; var httpContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var client = new HttpClient(); var httpResponseMessage = await client.PostAsync($"{_hostUri}/v2/pet", httpContent); Assert.AreEqual(HttpStatusCode.BadRequest, httpResponseMessage.StatusCode); Assert.AreEqual("Name : 'Name' must not be empty. | Name : Name is required | PhotoUrls : PhotoUrls is required", JsonConvert.DeserializeObject <string>(await httpResponseMessage.Content.ReadAsStringAsync())); }
public IActionResult add([FromBody] AddPetRequest request) { try { return(_service.addPet(request)); } catch (Exception e) { return(BadRequest(e)); } }
public async Task <ActionResult <PetViewModel> > CreatePetAsync([FromQuery] AddPetRequest request) { request.Photos = Request.Form.Files; var petViewModel = await _petService.AddAsync(request); var uri = $"{RoutePattern}/{petViewModel.Id}"; return(Created(uri, petViewModel)); }
public async Task ShouldTryToPutAPetAndFailWithBadRequestOuterProperty() { var request = new AddPetRequest() { Body = null }; var httpContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var client = new HttpClient(); var httpResponseMessage = await client.PostAsync($"{_hostUri}/v2/pet", httpContent); Assert.AreEqual(HttpStatusCode.BadRequest, httpResponseMessage.StatusCode); Assert.AreEqual("Body : Body is required", JsonConvert.DeserializeObject <string>(await httpResponseMessage.Content.ReadAsStringAsync())); }
public IActionResult AddPet(AddPetRequest request) try {