public async Task <ActionResult <Product> > CreateAsync(Product product) { await _repository.AddProductAsync(product); return(CreatedAtAction(nameof(GetByIdAsync), new { id = product.Id }, product)); }
public async Task <ActionResult <Product> > CreateProduct(Product product) { var newProduct = await _repository.AddProductAsync(product); if (newProduct == null) { return(BadRequest()); } return(Ok(newProduct)); }
public async Task <IActionResult> AddProduct(NewProductViewModel model) { if (!ModelState.IsValid) { return(View(_viewModelHelper.GetNewProductViewModel(model))); } await _productRepository.AddProductAsync( productName : model.ProductName, price : model.Price, categoryId : model.CategoryId, currencyId : model.CurrencyId, stocksId : model.SelectedStocks); return(RedirectToAction(nameof(Products))); }
public async Task <IActionResult> AddProductToStoreAsync([FromRoute] string storeName, [FromBody] ProductInputModel productInput) { if (string.IsNullOrWhiteSpace(storeName)) { var errorMessage = "Invalid store name provided."; _logger.LogError(errorMessage); return(BadRequest(errorMessage)); } if (productInput == null || string.IsNullOrWhiteSpace(productInput.Name) || string.IsNullOrWhiteSpace(productInput.Category)) { var errorMessage = "Invalid product details provided."; _logger.LogError(errorMessage); return(BadRequest(errorMessage)); } var isRegistered = await _storesRepository.StoreExistsAsync(storeName); if (!isRegistered) { var errorMessage = $"Store '{storeName}' not found."; _logger.LogError(errorMessage); return(NotFound(errorMessage)); } var exists = await _productsRepository.ProductExistsAsync(storeName, productInput.Name); if (exists) { var errorMessage = $"Product '{productInput.Name}' already exists in the store '{storeName}'."; _logger.LogError(errorMessage); return(BadRequest(errorMessage)); } var productDal = productInput.ToDalEntity(); await _productsRepository.AddProductAsync(storeName, productDal); _logger.LogInformation($"Product '{productInput.Name}' successfully added to the store '{storeName}'."); return(Ok($"Product '{productInput.Name}' added Successfully to the store '{storeName}'.")); }