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)); } }
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(); } }