Esempio n. 1
0
        public async Task <ProductDto> Handle(GetProductQuery request, CancellationToken cancellationToken)
        {
            var product = await _productRepository.GetAsync(p =>
                                                            p.ProductId == request.ProductId);

            if (product != null)
            {
                //_logger.Log(LogLevel.Information, $"Product of prod id {request.ProductId} successfully fetched");
                var productDto = _productDxo.MapProductDto(product);
                return(productDto);
            }
            return(null);
        }
Esempio n. 2
0
        public async Task <ProductDto> Handle(CreateProductCommand request, CancellationToken cancellationToken)
        {
            var product = new Product.Domain.Models.Product(request.ProductName, request.ProductCategory, request.ProductTransport, request.IsProductPerishable, request.Notes);

            _productRepository.Add(product);

            if (await _productRepository.SaveChangesAsync() == 0)
            {
                throw new ApplicationException();
            }
            await _mediator.Publish(new ProductCreatedEvent(product.ProductId), cancellationToken);

            var productDto = _productDxo.MapProductDto(product);

            return(productDto);
        }