Ejemplo n.º 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));
            }
        }
Ejemplo n.º 2
0
        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));
        }