public async Task Consume(ConsumeContext <BookDeletedIntegrationEvent> context) { var bookDeletedIntegrationEvent = context.Message; var resetStockCommand = new ResetStockCommand(bookDeletedIntegrationEvent.BookId, $"book-deleted-{bookDeletedIntegrationEvent.BookId}"); await _executionContext.ExecuteAsync(resetStockCommand, CancellationToken.None); }
public async Task <IActionResult> ResetStock([FromBody] ResetStockHttpRequest?resetStockHttpRequest) { var resetStockCommand = new ResetStockCommand(resetStockHttpRequest?.ProductId ?? string.Empty, resetStockHttpRequest?.CorrelationId ?? string.Empty); await _executionContext.ExecuteAsync(resetStockCommand, CancellationToken.None); return(StatusCode((int)HttpStatusCode.OK)); }
public async Task <IActionResult> ResetStock([FromRoute] long productId, [FromBody] ResetStockHttpRequest resetStockHttpRequest) { var queryProductServiceRequest = new QueryProductCommand(0, 1) { ProductId = productId }; await _mediator.Send(queryProductServiceRequest); StockActionHttpResponse stockActionHttpResponse = null; await _distributedLockManager.LockAsync(StockOperationLockKey(productId), async() => { ResetStockCommand resetStockCommand = resetStockHttpRequest != null ? new ResetStockCommand(productId, resetStockHttpRequest.CorrelationId) : null; StockActionResponse stockActionResponse = await _mediator.Send(resetStockCommand); stockActionHttpResponse = stockActionResponse.ToStockActionHttpResponse(); }); return(StatusCode((int)HttpStatusCode.OK, stockActionHttpResponse)); }