public async Task Consume(ConsumeContext <ShipmentCreatedEvent> context) { ShipmentCreatedEvent shipmentCreatedEvent = context.Message; long orderId = long.Parse(shipmentCreatedEvent.CorrelationId); await _distributedLockManager.LockAsync(OrderOperationKey(orderId), async() => { IOrderStateMachine orderStateMachine = await _orderStateMachineFactory.BuildOrderStateMachineAsync(orderId); orderStateMachine.SetAsOrderShipped(); } ); }
/// <summary> /// Handle shipment created event /// </summary> /// <param name="eventMessage">Event message</param> /// <returns>A task that represents the asynchronous operation</returns> public async Task HandleEventAsync(ShipmentCreatedEvent eventMessage) { if (eventMessage.Shipment is null) { return; } if (!await _shippingPluginManager.IsPluginActiveAsync(EasyPostDefaults.SystemName)) { return; } await _easyPostService.SaveShipmentAsync(eventMessage.Shipment); }