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); }
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); }