public async Task <IActionResult> RemoveProduct(
        [FromServices] Func <RemoveProductItemFromShoppingCart, CancellationToken, ValueTask> handle,
        Guid id,
        [FromBody] RemoveProductRequest request,
        CancellationToken ct
        )
    {
        if (request == null)
        {
            throw new ArgumentNullException(nameof(request));
        }

        var command = RemoveProductItemFromShoppingCart.From(
            id,
            PricedProductItem.From(
                ProductItem.From(
                    request.ProductItem?.ProductId,
                    request.ProductItem?.Quantity
                    ),
                request.ProductItem?.UnitPrice
                ),
            request.Version
            );

        await handle(command, ct);

        return(Ok());
    }
 public async Task <IActionResult> RemoveProduct([FromBody] RemoveProductRequest request)
 {
     return(await HandleAsync(async() =>
     {
         var client = clientFactory.Create <RemoveProductRequest, RemoveProductResponse>();
         return await client.Request(request);
     }));
 }
        public JsonResult Delete(System.Int32 id)
        {
            RemoveProductRequest request = new RemoveProductRequest();

            request.ProductID = id;
            RemoveProductResponse response = _productService.RemoveProduct(request);

            return(Json(response));
        }
        public async Task <IActionResult> RemoveProduct([FromBody] RemoveProductRequest request)
        {
            var(version, order) = await _aggregateService.GetAggregate <Order>(request.OrderId.ToString());

            order.RemoveProduct(request.ProductId);
            await _aggregateService.SaveAggregate(order, version);

            return(Ok(order));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> DeleteProduct([FromBody] RemoveProductRequest request)
        {
            bool result = await _service.RemoveProduct(request);

            if (!result)
            {
                return(BadRequest("Wrong id"));
            }
            return(Ok(result));
        }
Exemplo n.º 6
0
        public async Task <RemoveProductResponse> RemoveProduct(RemoveProductRequest request)
        {
            var cart = await repo.GetCartByIdAsync(request.CartId);

            cart.RemoveProduct(request.ProductId);

            await repo.SaveAsync(cart);

            return(new RemoveProductResponse(true, ResponseAction.Deleted));
        }
Exemplo n.º 7
0
        public async Task RemoveProduct(string id, RemoveProductRequest request, CancellationToken cancellationToken)
        {
            var httpRequestMessage =
                new HttpRequestMessage(HttpMethod.Put, $"/api/v1/basket/{id}/items/remove")
            {
                Content = new StringContent(JsonConvert.SerializeObject(request))
            };

            var responseMessage = await _httpClient.SendAsync(httpRequestMessage, cancellationToken);

            responseMessage.EnsureSuccessStatusCode();
        }
Exemplo n.º 8
0
        public async Task RemoveProduct(Guid cartId, Guid productId)
        {
            var request = new RemoveProductRequest(cartId, productId);

            var response = await restClient.Delete <RemoveProductRequest, RemoveProductResponse>(routing.URL,
                                                                                                 routing.RemoveProduct, request, HeaderAccept.Json);

            if (!response.IsSuccess)
            {
                //do something
            }
        }
Exemplo n.º 9
0
        public async Task <bool> RemoveProduct(RemoveProductRequest request)
        {
            Product product = _context.Products.Find(request.id);

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

            _context.Products.Remove(product);
            await _context.SaveChangesAsync();

            return(true);
        }
Exemplo n.º 10
0
        public async Task <bool> Handle(RemoveProductRequest request, IOutputPort <RemoveProductResponse> outputPort)
        {
            var product = await repository.GetProductById(request.ProductId);

            if (product != null)
            {
                await repository.Delete(product);

                outputPort.Handle(new RemoveProductResponse(true));
                return(true);
            }
            outputPort.Handle(new RemoveProductResponse(false, $"ProductId - {request.ProductId} was not found"));
            return(false);
        }
    public async Task <IActionResult> RemoveProduct(Guid id, [FromBody] RemoveProductRequest request)
    {
        var command = Carts.RemovingProduct.RemoveProduct.Create(
            id,
            PricedProductItem.Create(
                request?.ProductItem?.ProductId,
                request?.ProductItem?.Quantity,
                request?.ProductItem?.UnitPrice
                )
            );

        await commandBus.Send(command);

        return(Ok());
    }
Exemplo n.º 12
0
        public async Task <IActionResult> Remove([FromRoute] Guid id)
        {
            try
            {
                Guid userId  = Guid.Parse(User.FindFirst(ClaimTypes.PrimarySid).Value);
                var  request = new RemoveProductRequest(id, userId);

                var response = await _mediator.Send(request, CancellationToken.None);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 13
0
        public RemoveProductResponse RemoveProduct(RemoveProductRequest request)
        {
            RemoveProductResponse response = new RemoveProductResponse();

            response.Errors = new List <BusinessRule>();
            try {
                if (_productRepository.Remove(request.ProductID) > 0)
                {
                    response.ProductDeleted = true;
                }
            } catch (Exception ex)
            {
                response.Errors.Add(new BusinessRule("DAL", "DAL_ERROR: " + ex.Message));
            }
            return(response);
        }
Exemplo n.º 14
0
        public async Task <IActionResult> RemoveProduct(Guid id, [FromBody] RemoveProductRequest request)
        {
            Guard.Against.Null(request, nameof(request));
            Guard.Against.Null(request.ProductItem, nameof(request));

            var command = Commands.RemoveProduct.Create(
                id,
                PricedProductItem.Create(
                    request.ProductItem.ProductId,
                    request.ProductItem.Quantity,
                    request.ProductItem.UnitPrice
                    )
                );

            await commandBus.Send(command);

            return(Ok());
        }
Exemplo n.º 15
0
        public async override Task <RemoveProductResponse> RemoveProduct(RemoveProductRequest request, ServerCallContext context)
        {
            try
            {
                RemoveProductResponse removeProductResponse = new()
                {
                    Result = await mediator.Send <bool>(new RemoveProductCommand()
                    {
                        ProductIdentity = Guid.Parse(request.ProductIdentity)
                    })
                };

                return(removeProductResponse);
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 16
0
 public async Task <IActionResult> RemoveProduct([FromBody] RemoveProductRequest request)
 {
     return(await HandleAsync(async() => await service.RemoveProduct(request)));
 }