public async Task <Vanilla> GetVanilla(int lotNumber)
        {
            SpecialConsole.WriteLine($"['{lotNumber}' - Service] Vanilla acquiring takes really long");

            await Task.Delay(5000).ConfigureAwait(false);

            SpecialConsole.WriteLine($"['{lotNumber}' - Service] Vanilla, we have it");
            return(new Vanilla());
        }
        public void Handle(VanillaAcquired message)
        {
            SpecialConsole.WriteLine($"['{message.LotNumber}' - Policy] Chocolate blended");

            Bus.Publish(new ChocolateBlended {
                LotNumber = message.LotNumber
            });

            MarkAsComplete();
        }
        public void Handle(BlendChocolate message)
        {
            Data.LotNumber = message.LotNumber;

            SpecialConsole.WriteLine($"['{message.LotNumber}' - Policy] Acquiring vanilla");

            Bus.SendLocal(new AcquireVanilla {
                LotNumber = message.LotNumber
            });
        }
        public void Start()
        {
            SpecialConsole.WriteLine("-----------------------------------------------------------------------------------------");
            SpecialConsole.WriteLine("|                                                                                       |");
            SpecialConsole.WriteLine("-----------------------------------------------------------------------------------------");
            SpecialConsole.WriteLine();
            while (!tokenSource.IsCancellationRequested)
            {
                var recentlyAcquired = vanillaContext.Usages.OrderByDescending(u => u.Acquired).FirstOrDefault();

                SpecialConsole.WriteAt(0, 1, $"|   ['{recentlyAcquired?.LotNumber}' - Stats] Recently acquired vanilla {recentlyAcquired?.Acquired.ToString(CultureInfo.InvariantCulture) ?? "none"}".PadRight(60));
            }
        }
Example #5
0
        public void Handle(AcquireVanilla message)
        {
            SpecialConsole.WriteLine($"['{message.LotNumber}' - Handler] Acquire vanilla");

            var vanilla = communicator.AcquireVanilla(message.LotNumber).Result;

            using (var transaction = vanillaContext.Database.BeginTransaction())
            {
                vanillaContext.Usages.Add(new VanillaUsage(message.LotNumber));

                Bus.Reply(new VanillaAcquired {
                    LotNumber = message.LotNumber, Vanilla = vanilla
                });

                SpecialConsole.WriteLine($"['{message.LotNumber}' - Handler] Saving vanilla stats");

                vanillaContext.SaveChanges();

                transaction.Commit();
            }
        }