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;

        }
예제 #2
0
        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;
 }