Example #1
0
        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));
        }
Example #2
0
        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()));
        }
Example #5
0
 public IActionResult add([FromBody] AddPetRequest request)
 {
     try
     {
         return(_service.addPet(request));
     }
     catch (Exception e) { return(BadRequest(e)); }
 }
Example #6
0
        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()));
        }
Example #8
0
 public IActionResult AddPet(AddPetRequest request)
  try
     {