public async Task <IActionResult> UpdateProduct(
            [FromForm] ProductForm form,
            [FromServices] GetProduct getProduct,
            [FromServices] UpdateProduct updateProduct,
            [FromServices] S3Client s3Client)
        {
            var product = getProduct.Do(form.Id);

            product.Description      = form.Description;
            product.Series           = form.Series;
            product.StockDescription = form.StockDescription;

            if (form.Images != null && form.Images.Any())
            {
                product.Images = new List <Image>();
                var results = await Task.WhenAll(UploadFiles(s3Client, form.Images));

                product.Images.AddRange(results.Select((path, index) => new Image
                {
                    Index = index,
                    Path  = path,
                }));
            }

            await updateProduct.Do(product);

            return(Ok());
        }
        public async Task <IActionResult> UpdateProduct([FromServices] UpdateProduct updateProduct,
                                                        UpdateProductRequest updateProductRequest)
        {
            if (await updateProduct.Do(updateProductRequest) > 0)
            {
                return(Ok());
            }

            return(BadRequest());
        }
示例#3
0
        public async Task <IActionResult> UpdateProduct(
            [FromServices] UpdateProduct updateProduct,
            ProductViewModel vm)
        {
            var request = new UpdateProduct.Request
            {
                Id           = vm.Id,
                Name         = vm.Name,
                Description  = vm.Description,
                Value        = vm.Value,
                PrimaryImage = vm.PrimaryImage,
                Images       = vm.Images
            };

            // TODO: refactor
            if (vm.PrimaryImageFile != null)
            {
                if (vm.PrimaryImage != null || vm.PrimaryImage != "")
                {
                    _fileManager.DeleteImage(rootPath, vm.PrimaryImage);
                }

                var imgPath = await _fileManager.SaveImage(rootPath, vm.PrimaryImageFile);

                request.PrimaryImage = imgPath;
            }
            ;

            if (vm.ImageFiles != null)
            {
                if (vm.Images != null)
                {
                    foreach (var image in vm.Images)
                    {
                        _fileManager.DeleteImage(rootPath, image);
                    }
                }

                List <string> images = new List <string>();

                foreach (var image in vm.ImageFiles)
                {
                    var imgPath = await _fileManager.SaveImage(rootPath, image);

                    images.Add(imgPath);
                }

                request.Images = images;
            }
            ;

            return(Ok(await updateProduct.Do(request)));
        }
示例#4
0
 public async Task <IActionResult> UpdateProduct([FromServices] UpdateProduct updateProduct, [FromBody] UpdateProduct.Request request)
 {
     return(Ok((await updateProduct.Do(request))));
 }
示例#5
0
 public async Task <IActionResult> UpdateProduct(
     [FromBody] UpdateProduct.Form request,
     [FromServices] UpdateProduct updateProduct) =>
 Ok(await updateProduct.Do(request));
 public async Task <IActionResult> UpdateProduct(UpdateProduct.Request request,
                                                 [FromServices] UpdateProduct updateProduct) =>
 Ok(await updateProduct.Do(request));  //didn;t pass the hossting