Ejemplo n.º 1
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();
        }
        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;

        }
 public GenerateNewBooks(BookContextNew newBookCtx, AuthorContext autCtx, BookContext bookCtx)
 {
     this.newBookCtx = newBookCtx;
     this.autCtx = autCtx;
     this.bookCtx = bookCtx;
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var bookCtx = new BookContext();
            long count = 0;

            var books = new List<Book>();

            Console.WriteLine("Loading Books ...");

            var stopWatch = new Stopwatch();
            stopWatch.Start();

            foreach (var item in GetBookData())
            {
                try
                {
                    var book = new Book()
                    {
                        ISBN = item[0],
                        Title = item[1],
                        Author = item[2],
                        PublicationYear = int.Parse(item[3]),
                        Publisher = item[4],
                        ImageUrlSmall = item[5],
                        ImageUrlMedium = item[6],
                        ImageUrlLarge = item[7],
                    };

                    books.Add(book);
                    count++;
                }
                catch (Exception)
                {
                    Console.WriteLine("Error in line: {0}", count+1);
                }

                //Insert every 1,000 records
                if ((count % 1000) == 0)
                {
                    bookCtx.Books.InsertMany(books);
                    Console.WriteLine("Inserting: {0}", count);
                    books = new List<Book>();
                }
            }

            //Insert last if any
            if (books.Count > 0)
            {
                bookCtx.Books.InsertMany(books);
                Console.WriteLine("Inserting: {0}", count);
                books = null;
            }

            stopWatch.Stop();

            Console.WriteLine("Finished!");
            Console.WriteLine("Time elapsed: {0}", stopWatch.Elapsed);

            // Read some
            /*
            var books = Queryable.Where(bookCtx.Books.AsQueryable(), b => b.PageCount > 50);
            Console.WriteLine("Books with more than 50 pages: {0}", books.Count());
            Console.WriteLine("First One: {0}", books.FirstOrDefault().Title);
            Console.ReadKey();
            */
        }
Ejemplo n.º 5
0
 public Queries(BookContext ctx)
 {
     bookCtx = ctx;
 }
 public GenerateAuthors(AuthorContext autCtx, BookContext bookCtx)
 {
     this.autCtx = autCtx;
     this.bookCtx = bookCtx;
 }