private static void FindChild(string isbn, Action <IActorRef> f)
        {
            var book = Context.Child(BookUtilities.CreateBookName(isbn));

            if (book.IsNobody())
            {
                book = CreateBook(isbn);
            }

            f(book);
        }
Esempio n. 2
0
        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));