private async void Read() { var mongoClient = new MongoClient(); var bookCtx = new BookContext(mongoClient); var authCtx = new AuthorContext(mongoClient); var books = bookCtx.QBooks.AsParallel(); var authors = authCtx.QAuthors.AsParallel(); books.ForAll(b => { var author = authors.FirstOrDefault(a => a.Name == b.Author); if (author != null) { b.Author = null; b.AuthorId = author.Id; NewBooks.Enqueue(b); } }); readFinished = true; }
static void Main(string[] args) { var mongoClient = new MongoClient(); var bookCtx = new BookContext(mongoClient); /* var query = new Queries(bookCtx); query.DisplayTotal(); query.DisplayByAuthor("Ann Beattie"); query.DisplayByPublicationYear(2005); var genAuth = new GenerateAuthors(new AuthorContext(mongoClient), bookCtx); genAuth.StartGeneration(); var bookCtxNew = new BookContextNew(mongoClient); * */ var authCtx = new AuthorContext(mongoClient); /* var genNewBooks = new GenerateNewBooks(bookCtxNew, authCtx, bookCtx); genNewBooks.StartGeneration(); */ /* * Not a good option, too slow * Better let the Mongo driver to work instead var genNewBooks = new PGenerateNewBooks(); genNewBooks.StartGenerationParallel(); * */ Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
public GenerateNewBooks(BookContextNew newBookCtx, AuthorContext autCtx, BookContext bookCtx) { this.newBookCtx = newBookCtx; this.autCtx = autCtx; this.bookCtx = bookCtx; }
public GenerateAuthors(AuthorContext autCtx, BookContext bookCtx) { this.autCtx = autCtx; this.bookCtx = bookCtx; }