예제 #1
0
 private static void MessiveSendCmd(Action a)
 {
     new Thread(() =>
     {
         while (true)
         {
             if (_stop)
             {
                 return;
             }
             if (a == null)
             {
                 CommandEventSender.Send(new PingWorker(DateTime.Now.ToString())
                 {
                     PublishedCommandId = Guid.NewGuid(),
                     TokenSession       = Guid.NewGuid().ToString()
                 });
             }
             else
             {
                 a();
             }
         }
     }).Start();
 }
예제 #2
0
        private static void Run()
        {
            var redishost = ConfigurationManagerExtensions.GetConnectionString("RedisConnectionString");

            RedisServices.Init(redishost, null, string.Empty);

            CommandsAndEventsRegisterEngine.AutoRegister();

            EngineeCommandWorkerQueue.Start();
            EngineeEventWorkerQueue.Start();
            var cmd = (Console.ReadLine() ?? string.Empty).ToLower().Trim();

            while (!cmd.Equals("quit"))
            {
                switch (cmd)
                {
                case "quit":
                    _stop = true;
                    break;

                case "stop":
                    _stop = true;
                    break;

                case "start":
                    _stop = false;
                    MessiveSendCmd(null);
                    break;

                case "pubsub":
                    CommandEventSender.Send(new SampleEventCreated()
                    {
                        PublishedEventId = Guid.NewGuid(),
                        SampleVersion    = DateTime.Now.ToString(),
                        Version          = 0
                    });
                    break;

                case "pubsubmad":
                    _stop = false;
                    MessiveSendCmd(() => {
                        CommandEventSender.Send(new SampleEventCreated()
                        {
                            PublishedEventId = Guid.NewGuid(),
                            SampleVersion    = DateTime.Now.ToString(),
                            Version          = 0
                        });
                    });
                    break;
                }
                cmd = (Console.ReadLine() ?? string.Empty).ToLower().Trim();
            }

            Console.Read();
        }
예제 #3
0
        public void Handle(CreateSample c)
        {
            var temp = JsonConvert.SerializeObject(c);

            //using (var db = new SampleDbContext())
            //{

            //    db.SampleEntities.Add(new SampleEntity()
            //    {
            //        Id = Guid.NewGuid(),
            //        Version = temp
            //    });
            //    db.SaveChanges();
            //}
            Console.WriteLine("Call from api but Exec in console. Saved to db:");
            Console.WriteLine(temp);

            CommandEventSender.Send(new SampleEventCreated()
            {
                PublishedEventId = Guid.NewGuid(),
                SampleVersion    = $"Come from CreateSample command with cmdid {c.PublishedCommandId}"
            });
        }