public async Task <IActionResult> CreateProduct([FromBody] ProductToCreateDto productToCreateDto) { var productToCreate = _mapper.Map <Product>(productToCreateDto); if (await _repository.EntityExists(productToCreate)) { return(BadRequest("Product With Same Name and Vendor Exists")); } var category = await _repository.GetCategory(productToCreate.CategoryId); if (category == null) { return(BadRequest("Invalid Category Id")); } var productCode = await _repository.GenerateProductCode(productToCreateDto.CategoryId); if (productToCreateDto.Price == 0) { return(BadRequest("Invalid Price")); } var merchant = await _repository.GetMerchant(productToCreateDto.MerchantId); if (merchant == null) { return(BadRequest("The Merchant for whom this product is to be created does not exist")); } var brand = await _repository.GetBrand(productToCreateDto.BrandId); if (brand == null) { return(BadRequest("The Brand for whom this product is to be created does not exist")); } var store = await _repository.GetStore(productToCreateDto.StoreId); if (store == null) { return(BadRequest("The Store for which this product is to be stored does not exist")); } productToCreate.Code = productCode; store.Products.Add(productToCreate); if (await _repository.SaveAllChangesAsync()) { var productToReturn = _mapper.Map <ProductToReturnDto>(productToCreate); return(CreatedAtRoute("GetProduct", new { code = productToReturn.Code }, productToReturn)); } return(BadRequest("An Error occurred while creating product")); }
public async Task <IActionResult> CreateMerchant([FromBody] MerchantToCreateDto customerToCreateDto) { var customerToCreate = _mapper.Map <Merchant>(customerToCreateDto); if (await _repository.EntityExists(customerToCreate)) { return(BadRequest("Merchant Name Exists")); } _repository.Add(customerToCreate); if (await _repository.SaveAllChangesAsync()) { return(CreatedAtRoute("GetMerchant", new { id = customerToCreate.Id }, customerToCreate)); } return(BadRequest("An Error occurred while creating the Merchant")); }
public async Task <IActionResult> CreateCategory([FromBody] CategoryToCreateDto categoryToCreateDto) { var categoryToCreate = _mapper.Map <Category>(categoryToCreateDto); if (await _repository.EntityExists(categoryToCreate)) { return(BadRequest("Category Name Exists")); } _repository.Add(categoryToCreate); if (await _repository.SaveAllChangesAsync()) { return(CreatedAtRoute("GetMerchant", new { id = categoryToCreate.Id }, categoryToCreate)); } return(BadRequest("An Error occurred while creating the Category")); }
public async Task <IActionResult> CreateStore([FromBody] StoreToCreateDto storeToCreateDto) { var storeToCreate = _mapper.Map <Store>(storeToCreateDto); if (await _repository.EntityExists(storeToCreate)) { return(BadRequest("Store with the same name and location exists")); } _repository.Add(storeToCreate); if (await _repository.SaveAllChangesAsync()) { return(CreatedAtRoute("GetStore", new { id = storeToCreate.Id }, storeToCreate)); } return(BadRequest("An Error occurred while creating the store")); }
public async Task <IActionResult> CreateBrand([FromBody] BrandToCreateDto brandToCreateDto) { var categoryFromRepo = await _repository.GetCategory(brandToCreateDto.CategoryId); var brandToCreate = _mapper.Map <Brand>(brandToCreateDto); if (await _repository.EntityExists(brandToCreate)) { return(BadRequest("Brand Name Exists")); } _repository.Add(brandToCreate); if (await _repository.SaveAllChangesAsync()) { var brandToReturn = _mapper.Map <BrandToCreateDto>(brandToCreateDto); return(CreatedAtRoute("GetBrand", new { id = brandToCreate.Id }, brandToReturn)); } return(BadRequest("An Error occurred while creating the brand")); }