Beispiel #1
0
        public virtual ActionResult <PetCreateResponsetDto> AddPet([FromBody] PetCreateRequestDto pet)
        {
            try
            {
                pet.Validate();

                //Convert DTO object to DAO
                DBModels.Pet petDao = new DBModels.Pet();
                petDao.Name = pet.Name;

                //Create CategoryDal to get CategoryID from name
                DBModels.Category c = _categoryDal.getCategoryByName(pet.CategoryName);
                if (c == null)
                {
                    throw new ArgumentException("Can not find teh category by this name.");
                }
                petDao.CategoryId = c.Id;
                petDao.Status     = PetStatus.AvailableEnum.ToString();
                _petDal.savePet(petDao);


                //Convert response DAO to DTO
                PetCreateResponsetDto result = new PetCreateResponsetDto();
                result.Id           = petDao.Id;
                result.Name         = pet.Name;
                result.CategoryName = pet.CategoryName;
                result.Tags         = pet.Tags;
                result.Status       = (Models.Pet.StatusEnum?)PetStatus.AvailableEnum;

                Console.WriteLine("Received request for new pet. Thank you!!!");
                return(StatusCode(201, result));
            }
            catch (ArgumentException ex)
            {
                return(StatusCode(400, ex.Message));
            }
            catch (DbUpdateException ex)
            {
                if (ex.InnerException.GetType() == typeof(SqlException) &&
                    ((SqlException)(ex.InnerException)).Number == 2627)
                {
                    ApiResponse response = new ApiResponse();
                    response.Code    = 409;
                    response.Type    = "Duplicate";
                    response.Message = "Pet with the same id already exist.";

                    return(StatusCode((int)response.Code, response));
                }

                return(StatusCode(500));
            }
        }
Beispiel #2
0
 public void savePet(DBModels.Pet pet)
 {
     _context.Pet.Add(pet);
     _context.SaveChanges();
 }
Beispiel #3
0
 public DBModels.Pet getPetById(int id)
 {
     DBModels.Pet pet = null;
     return(pet);
 }