Example #1
0
        private static void Main(string[] args)
        {
            Console.CancelKeyPress += new ConsoleCancelEventHandler(ConsoleCancelHandler);
            using (var context = NetMQContext.Create())
            {
                var exchange = new Exchange(context);
                exchange.Start();
                using (var silo = new Silo(context, new BinarySerializer()))
                {
                    silo.RegisterEntity(typeof(TestHelpers.Counter));
                    silo.RegisterEntity(typeof(DiagnosticMessage));
                    silo.Start();

                    var diagnosticMessage = silo.ActorFactory.CreateInstance<IDiagnosticMessage>(typeof(DiagnosticMessage));

                    diagnosticMessage.WriteToConsole("Yeah this works");

                    Console.WriteLine("Press enter to start");
                    Console.ReadLine();

                    var counter = silo.ActorFactory.CreateInstance<ICounter>(typeof(Counter), Guid.NewGuid());

                    var exit = string.Empty;

                    for (int i = 0; i < 100; i++)
                    {
                        diagnosticMessage.WriteToConsole("Yeah this works");
                        Console.WriteLine(i);
                       counter.Add();
                        Thread.Sleep(10);
                    }

                    Console.WriteLine("Done: press enter to exit");
                    Console.ReadLine();
                    silo.Stop();
                }

                exchange.Stop(true);

                Console.WriteLine("Press Enter to Exit....again");
                Console.ReadLine();
            }
        }
Example #2
0
        public static void Main(string[] args)
        {
            Console.CancelKeyPress += new ConsoleCancelEventHandler(ConsoleCancelHandler);

            using (var context = NetMQContext.Create())
            {
                var exchange = new Exchange(context);
                exchange.Start();
                using (var silo = new Silo(context, new BinarySerializer()))
                {
                    silo.RegisterEntity(typeof(Customer));
                    silo.RegisterEntity(typeof(Order));
                    silo.RegisterEntity(typeof(DiagnosticMessage));
                    silo.Start();

                    var diagnosticMessage = silo.ActorFactory.CreateInstance<IDiagnosticMessage>(typeof(DiagnosticMessage));

                    diagnosticMessage.WriteToConsole("Yeah this works");
                    //Console.WriteLine("Run tests");
                    //Console.ReadLine();

                    var customer = silo.ActorFactory.CreateInstance<ICustomer>(typeof(Customer), 99);

                    //customer.CreateOrder();

                    var uniqueGuid = Guid.NewGuid();
                    var order = silo.ActorFactory.CreateInstance<IOrder>(typeof(Order), uniqueGuid);

                    var productId = Guid.NewGuid()
                        .ToString()
                        .Replace("-", "")
                        .Replace("{", "")
                        .Replace("}", "")
                        .Substring(0, 10);

                    order.CreateOrder("Another order", 23, productId, 12);

                    var exit = string.Empty;
                    var description = "XXXX";

                    for (int i = 0; i < 100; i++)
                    {
                        Console.WriteLine(
                               "({0}) Last order created was {1}, its description was {2}", i,
                               uniqueGuid,
                               description);

                       // uniqueGuid = Guid.NewGuid();
                        customer.CreateOrder();

                        if (exit != null && exit.ToLower() != "runtoend")
                        {
                            Console.WriteLine("Press Enter to send another message, or type exit to stop");
                            exit = Console.ReadLine();
                            if (exit != null && exit.ToLower() == "exit")
                            {
                                break;
                            }
                        }

                        description = "New Description " + 23 + (i * 2);
                        order.UpdateDescription(description);

                    //    customer.UpdateName(string.Format("new name, {0}", i.ToString(CultureInfo.InvariantCulture)));
                    //    var customer2 = silo.ActorFactory.CreateInstance<ICustomer>(typeof(Customer), i);
                    //    ////Thread.Sleep(500);
                    //    customer2.UpdateName("XXX - AAA" + i);
                    //    Console.WriteLine("Customer {0} was updated", i);
                    }

                    ////var netMqMessage = new NetMQMessage();
                    ////netMqMessage.Append(new NetMQFrame(actor.Serializer.GetBuffer("Aslongasitissomething")));
                    ////netMqMessage.Append(new NetMQFrame(actor.Serializer.GetBuffer("shutdownallactors")));
                    ////actor.OutputChannel.SendMessage(netMqMessage);

                    Console.WriteLine("Out of loop; Press Enter to stop silo");
                    Console.ReadLine();
                    silo.Stop();
                }

                exchange.Stop(true);

                Console.WriteLine("Press Enter to Exit");
                Console.ReadLine();
             }
        }