Esempio 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));
            }
        }
Esempio n. 2
0
        public virtual ActionResult <CategoryCreateResponsetDto> AddCategory([FromBody] CategoryCreateRequestDto category)
        {
            try
            {
                category.Validate();

                //Convert DTO object to DAO
                DBModels.Category categoryDao = new DBModels.Category();
                categoryDao.Name = category.Name;

                //Create CategoryDal to get CategoryID from name
                _categoryDal.saveCategory(categoryDao);

                //Convert response DAO to DTO
                CategoryCreateResponsetDto result = new CategoryCreateResponsetDto();
                result.Id   = categoryDao.Id;
                result.Name = categoryDao.Name;

                Console.WriteLine("Received request for new category. 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 == 2601)
                {
                    ApiResponse response = new ApiResponse();
                    response.Code    = 409;
                    response.Type    = "Duplicate";
                    response.Message = "Category with the same name already exist.";

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

                return(StatusCode(500));
            }
        }
Esempio n. 3
0
 public void saveCategory(DBModels.Category category)
 {
     _context.Category.Add(category);
     _context.SaveChanges();
 }
Esempio n. 4
0
        public DBModels.Category getCategoryByName(string name)
        {
            DBModels.Category category = _context.Category.Single(c => c.Name == name);

            return(category);
        }