Exemplo n.º 1
0
        public async Task ExecuteAsync(object opts, CancellationToken cancellationToken)
        {
            var options = (DumpOptions)opts;

            // Use the internal PageFile class to open up the specified file.
            var pageFile = new PageFile();

            await pageFile.OpenAsync(options.DBFileName, cancellationToken);

            // If they want to dump a specific page, do so.
            if (options.PageNum.HasValue)
            {
                var page = await pageFile.ReadPageAsync(options.PageNum.Value, cancellationToken);

                DumpPage(options.PageNum.Value, page);
            }
            else
            {
                // Get the number of pages
                var numPages = pageFile.NumPages;

                Console.WriteLine("Num Pages: {0}", numPages);
                Console.WriteLine();
                Console.WriteLine("Page  Description");
                Console.WriteLine("----  -----------");

                // Iterate through all the pages, and print a summary of each
                for (var i = 0; i < numPages; i++)
                {
                    var page = await pageFile.ReadPageAsync(i, cancellationToken);

                    Console.WriteLine("{0,4}  {1}", i, page.ToString());
                }
            }
        }