public void Handle(OrderAcceptedEvent message) { // here we should check the state // and if saga allready done this step => saga repository // ... var currentState = this._orderSagaRepository.GetSagaState(message.OrderId); var newState = message.State; Console.WriteLine(); Console.WriteLine("-----------------------------------"); Console.WriteLine(DateTime.Now); Console.WriteLine("Handling OrderAcceptedEvent '{0}'...", message.OrderId); Console.WriteLine("-----------------------------------"); Console.WriteLine(); this.Bus.Send( new OrderAcceptedMessage { OrderId = message.OrderId, OrderState = message.State }); // save current saga state this.Data.OrderState = message.State; this._orderSagaRepository.SaveSagaState(this.Data); }
private void HandleOrderAcceptedEvent(OrderAcceptedEvent orderAccepted) { using (var scope = _serviceScopeFactory.CreateScope()) { IDeliveryService deliveryService = scope.ServiceProvider.GetRequiredService <IDeliveryService>(); deliveryService.AddDelivery(DeliveriesMapper.MapNewDeliveryEvent(orderAccepted)); } }
public void Handle(OrderAcceptedEvent message) { this._repository.Update( new OrderViewModel { OrderState = message.State }); }
public bool EmitOrderAcceptedEvent(OrderAcceptedEvent evt) { if (this.NextEmitResult) { evt.OrderID = Guid.NewGuid().ToString(); this.EmittedTransactions.Add(evt); } return(this.NextEmitResult); }
private async Task SendOrderAcceptedEventAsync(Guid userId, Guid anotherUserId, Guid dealId) { var @event = new OrderAcceptedEvent { UserId = userId, AnotherUserId = anotherUserId, DealId = dealId }; _messageSession = (IMessageSession)_serviceProvider.GetService(typeof(IMessageSession)); await _messageSession.Publish(@event); _logger.LogInformation("----- Published OrderAcceptedEvent: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", @event.Id, Program.AppName, @event); }
/// <summary> /// Pubblica l'evento "Ordine Accettato da gestore" su coda Delivery /// </summary> /// <param name="orderRejected">Dati del messaggio</param> public void OrderAccepted(OrderAcceptedEvent orderAccepted) { IBasicProperties props = _channel.CreateBasicProperties(); props.Type = nameof(OrderAcceptedEvent); var body = MessageSerializationHelper.SerializeObjectToBin(orderAccepted); _channel.BasicPublish(exchange: string.Empty, routingKey: ApplicationEvents.DeliveryQueue, basicProperties: props, body: body); }
/// <summary> /// Pubblica l'evento "Ordine Accettato da gestore" su coda Delivery /// </summary> /// <param name="orderRejected">Dati del messaggio</param> public void OrderAccepted(OrderAcceptedEvent orderAccepted) { using (var connection = _factory.CreateConnection()) using (var channel = connection.CreateModel()) { IBasicProperties props = channel.CreateBasicProperties(); props.Type = nameof(OrderAcceptedEvent); var body = MessageSerializationHelper.SerializeObjectToBin(orderAccepted); channel.BasicPublish(exchange: string.Empty, routingKey: ApplicationEvents.DeliveryQueue, basicProperties: props, body: body); } }
internal static DTO.Delivery MapNewDeliveryEvent(OrderAcceptedEvent orderAccepted) { DTO.Delivery output = new DTO.Delivery() { DeliveryAddress = orderAccepted.deliveryAddress, DeliveryName = orderAccepted.deliveryName, DeliveryRequestedDate = orderAccepted.deliveryRequestedDate, IdOrder = orderAccepted.idOrder, IdRestaurant = orderAccepted.idRestaurant, IdStatus = (int)DTO.Status.ToPickUp, PickUpAddress = orderAccepted.restaurantAddress, RestaurantName = orderAccepted.restaurantName }; return output; }
public static Task SendThankYouEmail(OrderAcceptedEvent message) { return(Task.CompletedTask); }