Exemplo n.º 1
0
        public override async Task <IActionResult> Create(ProductViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
                return(View(model));
            }

            await Context.Products.AddAsync(model);

            await Context.ProductPrices.AddAsync(new ProductPrice
            {
                Product = model,
                Price   = model.Price
            });

            var dbResult = await Context.PushAsync();

            if (dbResult.IsSuccess)
            {
                if (model.ProductImagesList != null && model.ProductImagesList.Any())
                {
                    await _galleryManager.AddImagesOnCreateAsync(model.Id, model.ProductImagesList);
                }
                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AppendResultModelErrors(dbResult.Errors);

            return(View(model));
        }
Exemplo n.º 2
0
 public async Task <JsonResult> GetPriceByVariation(ProductPriceVariationViewModel model)
 {
     if (ModelState.IsValid)
     {
         return(await JsonAsync(_productService.GetPriceByVariationAsync(model)));
     }
     ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
     return(Json(model));
 }
Exemplo n.º 3
0
        public override async Task <IActionResult> Edit(ProductViewModel model)
        {
            if (!ModelState.IsValid || model.Id.Equals(Guid.Empty))
            {
                ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
                return(View(model));
            }

            var dbModel = await Context.Products
                          .Include(x => x.ProductPrices)
                          .AsNoTracking()
                          .FirstOrDefaultAsync(x => x.Id.Equals(model.Id));

            dbModel.Name             = model.Name;
            dbModel.DisplayName      = model.DisplayName;
            dbModel.Description      = model.Description;
            dbModel.IsPublished      = model.IsPublished;
            dbModel.ShortDescription = model.ShortDescription;
            dbModel.Specification    = model.Specification;
            dbModel.BrandId          = model.BrandId;
            dbModel.ProductTypeId    = model.ProductTypeId;

            if (model.ProductAttributesList != null && model.ProductImagesList.Any())
            {
                dbModel.ProductImages = model.ProductImagesList.Select(async x =>
                {
                    var stream = new MemoryStream();
                    await x.CopyToAsync(stream);
                    return(stream);
                }).Select(x => x.Result).Select(x => x.ToArray()).Select(x => new ProductImage
                {
                    Image     = x,
                    ProductId = model.Id
                }).ToList();
            }

            if (model.Price.Equals(dbModel.PriceWithoutDiscount).Negate())
            {
                Context.ProductPrices.Add(new ProductPrice
                {
                    Price     = model.Price,
                    ProductId = model.Id
                });
            }

            Context.Products.Update(dbModel);
            var dbResult = await Context.PushAsync();

            if (dbResult.IsSuccess)
            {
                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AppendResultModelErrors(dbResult.Errors);

            return(View(model));
        }
Exemplo n.º 4
0
        public async Task <JsonResult> AddToCard(AddToCartViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
                return(Json(model));
            }
            var result = await _cartService.AddToCardAsync(model);

            return(Json(result, SerializerSettings));
        }
        public async Task <IActionResult> Create(DocumentTypeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
                return(View(model));
            }

            var result = await _documentTypeService.SaveDocumentTypeAsync(model);


            return(View(result.Result));
        }
Exemplo n.º 6
0
        public virtual async Task <IActionResult> Edit(TViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddCommerceError(CommerceErrorKeys.InvalidModel);
                return(View(model));
            }

            Context.Update <TEntity>(model);
            var dbResult = await Context.PushAsync();

            if (dbResult.IsSuccess)
            {
                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AppendResultModelErrors(dbResult.Errors);
            return(View(model));
        }