public async Task <ActionResult <Product> > CreateAsync(Product product)
        {
            await _repository.AddProductAsync(product);

            return(CreatedAtAction(nameof(GetByIdAsync),
                                   new { id = product.Id }, product));
        }
Esempio n. 2
0
        public async Task <ActionResult <Product> > CreateProduct(Product product)
        {
            var newProduct = await _repository.AddProductAsync(product);

            if (newProduct == null)
            {
                return(BadRequest());
            }

            return(Ok(newProduct));
        }
Esempio n. 3
0
        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}'."));
        }