private static void FindChild(string isbn, Action <IActorRef> f) { var book = Context.Child(BookUtilities.CreateBookName(isbn)); if (book.IsNobody()) { book = CreateBook(isbn); } f(book); }
protected override void OnReceive(object message) { switch (message) { case GetBook book: if (knownIds.Contains(BookUtilities.CreateBookName(book.Isbn))) { var task = readJournal .CurrentEventsByPersistenceId(BookUtilities.CreateBookName(book.Isbn), 0, long.MaxValue) .RunAggregate(new BookLookupResult(), ReadBook, mat); task.Wait(); Sender.Tell(task.Result); } else { Sender.Tell(new BookNotFound()); } break; } }
private static IActorRef CreateBook(string isbn) => Context.ActorOf(Book.props, BookUtilities.CreateBookName(isbn));