/// <inheritdoc/> public void PublishOrderDeterrioratedEvent(Order order) { queuePublisher.Publish(new DeliverySimulatorEvent() { Message = $"Order {order.Id} deterriorated.", Type = DeliverySimulaterEventType.Fail, }); }
private static void EmitOrdersService_OnOutOfOrders(object sender, EventArgs args) { using (var queuePublisher = new QueuePublisher(AppSettings.Instance .AppConfig.RabbitMQ.KitchenTerminationQueueName)) { queuePublisher.Publish(new object()); } Environment.Exit(0); }
/// <summary> /// Start timer-based order emitting process /// </summary> public void StartEmittingOrders() { ReinitializeComponent(); var orders = orderProvider.GetOrders(); orderStack = new Stack <Order>(orders); timer.Elapsed += new ElapsedEventHandler((sender, args) => { try { lock (_lock) { if (orderStack.Count == 0) { if (!isOutOfOrdersTriggered) { isOutOfOrdersTriggered = true; timer.Dispose(); OnOutOfOrders?.Invoke(this, null); } timer.Dispose(); return; } else { var order = orderStack.Pop(); publisher.Publish(order); } } } catch (Exception ex) { Console.Error.WriteLine(ex.Message); } }); timer.Start(); }
public KitchenTerminationProcess(KitchenShelvesManager kitchenShelves) { var timer = new Timer(); timer.Interval = TimeSpan.FromSeconds(1).TotalMilliseconds; timer.AutoReset = true; timer.Elapsed += (sender, args) => { // wait for kitchen to stop working if (kitchenShelves.All(x => x.Orders.Count == 0)) { using (var eventTerminationQueuePublisher = new QueuePublisher(AppSettings.Instance.AppConfig.RabbitMQ.EventLogDisplayTerminationQeueueName)) { eventTerminationQueuePublisher.Publish(new object()); } Environment.Exit(0); } }; timer.Start(); }
public IActionResult Post(Employee emp) { queuePublisher.Publish(emp); return(Ok("Message is added in Queue")); }