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 virtual ActionResult <Models.Category> GetCategoryByName([FromRoute][Required] string categoryName) { var categoryDao = _categoryDal.getCategoryByName(categoryName); if (categoryDao == null) { Console.WriteLine("Category with name %s not found!", categoryName); ApiResponse response = new ApiResponse(); response.Code = 404; response.Type = "Not Found"; response.Message = "Category with the name does not exist."; return(NotFound(response)); } Models.Category result = new Models.Category(); result.Id = categoryDao.Id; result.Name = categoryDao.Name; return(StatusCode(200, result)); }