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 <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)); } }
public void saveCategory(DBModels.Category category) { _context.Category.Add(category); _context.SaveChanges(); }
public DBModels.Category getCategoryByName(string name) { DBModels.Category category = _context.Category.Single(c => c.Name == name); return(category); }