Пример #1
0
    static void Main()
    {
        var factory = new ConnectionFactory()
        {
            HostName = "localhost"
        };

        using (var connection = factory.CreateConnection())
        {
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: "Orders",
                                     durable: false,
                                     exclusive: false,
                                     autoDelete: false,
                                     arguments: null);

                var consumer = new EventingBasicConsumer(channel);
                consumer.Received += (model, ea) =>
                {
                    var        body       = ea.Body;
                    var        message    = Encoding.UTF8.GetString(body);
                    OrderAdded OrderAdded = Newtonsoft.Json.JsonConvert.DeserializeObject <OrderAdded>(message);
                    Console.WriteLine(" [x] Received {0}", message);
                };
                channel.BasicConsume(queue: "Orders",
                                     autoAck: true,
                                     consumer: consumer);

                Console.WriteLine(" Press [enter] to exit.");
                Console.ReadLine();
            }
        }
    }
 private void OnOrderAdded(List <LaborDetail.ListItem> orders)
 {
     if (OrderAdded != null)
     {
         OrderAdded.Invoke(this, new OrderEventArgs(orders));
     }
 }
Пример #3
0
        public OrderBase AddOrder(OrderType orderType)
        {
            OrderBase order = OrderFactory.CreateOrder(this, orderType);

            OrderList.Add(order);

            OrderAdded?.Invoke(order);

            return(order);
        }
Пример #4
0
        private OrderAdded GetNext(OrderRuleTypeEnum rule)
        {
            var queue = GetRuleBasedQueue(rule);
            var order = queue.GetNext();

            var orderAdded = new OrderAdded
            {
                AddedAtDate          = DateTime.UtcNow,
                CountryType          = order.CountryType,
                FulFilled            = order.Items.All(i => i.FulFilled),
                Id                   = order.Id,
                Items                = order.Items,
                LastTryDate          = DateTime.UtcNow,
                OrderOriginationDate = order.OrderDate
            };

            return(orderAdded);
        }
Пример #5
0
        public virtual void Add(T order)
        {
            if (!Orders.TryAdd(order))
            {
                throw new OrderingAddItemException(order.Id, Orders.FirstOrDefault()?.OrderRuleType.ToString());
            }

            var orderAdded = new OrderAdded
            {
                AddedAtDate          = DateTime.UtcNow,
                CountryType          = order.CountryType,
                FulFilled            = false,
                Id                   = order.Id,
                Items                = order.Items,
                LastTryDate          = DateTime.UtcNow,
                OrderOriginationDate = order.OrderDate
            };

            OrderAdded(orderAdded);
        }
Пример #6
0
    public static void Main()
    {
        var factory = new ConnectionFactory()
        {
            HostName = "localhost"
        };

        using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: "Orders",
                                     durable: false,
                                     exclusive: false,
                                     autoDelete: false,
                                     arguments: null);

                OrderAdded OrderAdded = new OrderAdded
                {
                    OrderID  = 12345,
                    Customer = new Customer {
                        CustomerID = 678, FullName = "Johnathan"
                    }
                };
                string OrderAddedString = Newtonsoft.Json.JsonConvert.SerializeObject(OrderAdded);
                var    body             = Encoding.UTF8.GetBytes(OrderAddedString);

                channel.BasicPublish(exchange: "",
                                     routingKey: "Orders",
                                     basicProperties: null,
                                     body: body);
                Console.WriteLine(" [x] Sent {0}", OrderAddedString);
            }

        Console.WriteLine(" Press [enter] to exit.");
        Console.ReadLine();
    }
Пример #7
0
 protected virtual void onOrderAdded(Order o)
 {
     OrderAdded?.Invoke(this, o);
 }
Пример #8
0
        public async Task <ActionResult> Post(OrderAdded order)
        {
            await _publishEndpoint.Publish(order);

            return(Ok());
        }