public async Task <bool> Handle(GetProductDetailRequest request, IOutputPort <GetProductDetailResponse> outputPort) { var product = await repository.GetProductById(request.Id); if (product != null) { outputPort.Handle(new GetProductDetailResponse(product.Id, product.Name, product.Description, product.Price, product.Category, true)); return(true); } outputPort.Handle(new GetProductDetailResponse(false, $"ProductId - {request.Id} was not found")); return(false); }
public async Task <Response <ProductDetailResponse> > Get(GetProductDetailRequest request) { var product = await _uow.Products.FindAsync(new Guid(request.ProductId)); if (product == null || !product.IsActive) { return(new Response <ProductDetailResponse>(ResponseStatus.NotFound, null, $"Product with id: {request.ProductId} was not founded")); } var availabilities = await _productSharedService.GetProductAvailabilities(product); return(new Response <ProductDetailResponse>(ResponseStatus.Ok, _mapService.MapProductDetail(product, availabilities))); }
public async Task <IHttpActionResult> Get([FromUri] GetProductDetailRequest request) { var response = await _productService.Get(request); return(new CreateResult(response)); }