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)); } }
public void savePet(DBModels.Pet pet) { _context.Pet.Add(pet); _context.SaveChanges(); }
public DBModels.Pet getPetById(int id) { DBModels.Pet pet = null; return(pet); }