예제 #1
0
 public void Execute(ProductChangeDto request)
 {
     request.Id = 0;
     _validator.ValidateAndThrow(request);
     _context.Products.Add(_maper.Map <Product>(request));
     _context.SaveChanges();
 }
예제 #2
0
        public async Task <IActionResult> PutProduct([FromRoute] int id, [FromBody] ProductChangeDto productDto)
        {
            try
            {
                var product = await _repository.GetProduct(id);

                if (product == null)
                {
                    return(NotFound());
                }

                productDto.Favourite = product.Favourite;
                _mapper.Map(productDto, product);

                _repository.UpdateProduct(product);
                await _repository.Save();

                return(NoContent());
            }
            catch (DbUpdateException e)
            {
                ModelState.AddModelError("database", e.InnerException.Message);
                return(ValidationProblem());
            }
            catch (Exception e)
            {
                return(_helpers.ErrorResponse(e));
            }
        }
        public async Task <HttpResponseMessage> UpdateProduct(int id, ProductChangeDto product)
        {
            var p = _context.products.Where(p => p.Id == id).FirstOrDefault();

            p.Name        = product.Name;
            p.Description = product.Description;
            p.Price       = product.Price;
            p.InStock     = product.InStock;

            await _context.SetProductsAsync(_context.products);

            var item = _context.order.OrderItems
                       .Where(o => o.ProductId == p.Id)
                       .FirstOrDefault();

            if (item != null)
            {
                var newPrice = item.Amount * product.Price;
                _context.order.Total = _context.order.Total - item.Price + newPrice;
                item.Price           = newPrice;
                item.Product         = p;
            }

            await _context.SetOrderAsync(_context.order);

            res = new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.NoContent
            };

            return(res);
        }
예제 #4
0
        public void Execute(ProductChangeDto request)
        {
            _validator.ValidateAndThrow(request);
            var product = _context.Products.Find(request.Id);

            if (product == null)
            {
                throw new EntityNotFoundException(request.Id, typeof(Product));
            }
            _maper.Map(request, product);
            _context.SaveChanges();
        }
예제 #5
0
 public void Update(ProductChangeDto p)
 {
     ProductName        = p.ProductName;
     ProductType        = p.ProductType;
     Description        = p.Description;
     Style              = p.Style;
     Brand              = p.Brand;
     Url                = p.Url;
     ShippingPriceCents = p.ShippingPriceCents;
     Note               = p.Note;
     return;
 }
예제 #6
0
        protected override async Task OnInitializedAsync()
        {
            _state.OnChange += StateHasChanged;

            int.TryParse(id, out productId);

            if (productId != 0)
            {
                try
                {
                    product = await _productsDataService.GetProduct(productId);
                }
                catch (Exception e)
                {
                    _state.err = new Error(e.Message, false);
                }
            }
        }
예제 #7
0
        public async Task <IActionResult> PostProduct([FromBody] ProductChangeDto productDto)
        {
            try
            {
                var product = _mapper.Map <Product>(productDto);

                _repository.AddProduct(product);
                await _repository.Save();

                return(CreatedAtAction("GetProduct",
                                       new { id = product.Id },
                                       _mapper.Map <ProductDto>(product)));
            }
            catch (DbUpdateException e)
            {
                ModelState.AddModelError("database", e.InnerException.Message);
                return(ValidationProblem());
            }
            catch (Exception e)
            {
                return(_helpers.ErrorResponse(e));
            }
        }
        public async Task <HttpResponseMessage> AddProduct(ProductChangeDto product)
        {
            var p = JsonSerializer.Deserialize <ProductDto>(
                JsonSerializer.Serialize <ProductChangeDto>(product));

            p.Id = _context.products.Count + 1;

            _context.products.Add(p);

            await _context.SetProductsAsync(_context.products);

            var jsonString = new StringContent(
                JsonSerializer.Serialize <ProductDto>(p),
                Encoding.UTF8,
                "application/json");

            res = new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.Created,
                Content    = jsonString
            };

            return(res);
        }
 public async Task <HttpResponseMessage> UpdateProduct(int id, ProductChangeDto product)
 {
     return(await _secureHttp.PutAsJsonAsync($"/api/products/{id}", product));
 }
 public async Task <HttpResponseMessage> AddProduct(ProductChangeDto product)
 {
     return(await _secureHttp.PostAsJsonAsync("/api/products", product));
 }
예제 #11
0
 public IActionResult Put(int id, [FromBody] ProductChangeDto dto, [FromServices] IProductUpdateCommand command)
 {
     dto.Id = id;
     executor.ExecuteCommand(command, dto);
     return(NoContent());
 }
예제 #12
0
 public IActionResult Post([FromBody] ProductChangeDto dto, [FromServices] IProductAddCommand command)
 {
     executor.ExecuteCommand(command, dto);
     return(StatusCode(StatusCodes.Status201Created));
 }
예제 #13
0
 public IActionResult Put(int id, [FromBody] ProductChangeDto dto, [FromServices] IUpdateProductCommand command)
 {
     dto.Id = id;
     _executor.ExecuteCommand(command, dto);
     return(StatusCode(StatusCodes.Status204NoContent));
 }