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);
        }
Ejemplo n.º 2
0
 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
     });
 }
Ejemplo n.º 4
0
 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);
        }
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        /// <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);
                }
        }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
 public static Task SendThankYouEmail(OrderAcceptedEvent message)
 {
     return(Task.CompletedTask);
 }