示例#1
0
        public void Execute(UpdateProductDto request)
        {
            if (_context.Products.Any(x => x.Id == request.Id))
            {
                var oneProduct = _context.Products.Find(request.Id);
                if (request.Name == oneProduct.Name)
                {
                    _validator.ValidateAndThrow(request);
                    oneProduct.Name        = request.Name;
                    oneProduct.Description = request.Description;
                    oneProduct.Price       = request.Price;
                    //oneProduct.Slika = UploadJedneSlike.UploadJednaSlika(request.Slika);
                    oneProduct.Quantity  += request.Quantity;
                    oneProduct.ModifiedAt = DateTime.Now;

                    _context.SaveChanges();
                }
                else
                {
                    _validatorName.ValidateAndThrow(request);
                    oneProduct.Name        = request.Name;
                    oneProduct.Description = request.Description;
                    oneProduct.Price       = request.Price;
                    //oneProduct.Slika = UploadJedneSlike.UploadJednaSlika(request.Slika);
                    oneProduct.Quantity  += request.Quantity;
                    oneProduct.ModifiedAt = DateTime.Now;

                    _context.SaveChanges();
                }
            }
            else
            {
                throw new EntityNotFoundException(request.Id, typeof(Product));
            }
        }
示例#2
0
        public void Execute(ProductDto request)
        {
            _validator.ValidateAndThrow(request);
            var product = _context.Products.Find(request.Id);

            if (product == null)
            {
                throw new EntityNotFoundException(request.Id, typeof(Product));
            }
            _mapper.Map(request, product);
            _context.SaveChanges();
        }
示例#3
0
        public void Execute(int id, ProductDto dto)
        {
            dto.Id = id;

            var product = _context.Products.Find(id);

            if (product == null)
            {
                throw new EntityNotFoundException(id, typeof(Product));
            }

            _validator.ValidateAndThrow(dto);

            _mapper.Map(dto, product);

            _context.SaveChanges();
        }
示例#4
0
        public void Execute(UpdateProductDto request)
        {
            if (_context.Products.Any(pr => pr.Name == request.Name))
            {
            }
            _validator.ValidateAndThrow(request);

            var product = _context.Products.AsQueryable().Include(p => p.Prices).Where(p => p.Id == request.Id).FirstOrDefault();

            var pathImage = product.ImagePath;

            if (request.Image != null)
            {
                pathImage = UploadService.UploadImage(request.Image);
            }

            using (var dbContextTransaction = _context.Database.BeginTransaction())
            {
                product.Name        = request.Name;
                product.Description = request.Description;
                product.Stock      += request.Stock;
                product.ImagePath   = pathImage;
                _context.SaveChanges();
                if (!_context.PriceHistory.Where(prod => prod.ProductId == request.Id).Any(price => price.Price == request.Price))
                {
                    var price = new PriceHistory
                    {
                        Price     = request.Price,
                        ProductId = request.Id
                    };
                    _context.PriceHistory.Add(price);
                    _context.SaveChanges();
                }


                dbContextTransaction.Commit();
            }
        }