Beispiel #1
0
        public IActionResult Index(SortFilterPageOptionsDto options)
        {
            var listBooksService = new ListBooksService(dataContext);
            IEnumerable <BookListDto> booksList = listBooksService.SortFilterPage(options).ToArray();

            return(View(new BookListCombinedDto(HttpContext.TraceIdentifier, options, booksList)));
        }
        public IActionResult Index(SortFilterPageOptions options)
        {
            var listService =
                new ListBooksService(_context);

            var bookList = listService
                           .SortFilterPage(options)
                           .ToList();

            SetupTraceInfo();           //Thsi makes the logging display work

            return(View(new BookListCombinedDto(options, bookList)));
        }
        public async Task TestListBooksServiceOrderNormalOk()
        {
            //SETUP
            using var context = new BookDbContext(_options);

            var service    = new ListBooksService(context);
            var sfpOptions = new SortFilterPageOptions();

            //ATTEMPT
            var query = (await service.SortFilterPageAsync(sfpOptions));

            //VERIFY
            _output.WriteLine(query.ToQueryString());
        }
        public async Task <IActionResult> Index //#A
            (SortFilterPageOptions options)
        {
            var listService =
                new ListBooksService(_context);

            var bookList = await listService //#B
                           .SortFilterPage(options)
                           .ToListAsync();   //#C

            SetupTraceInfo();                //REMOVE THIS FOR BOOK as it could be confusing

            return(View(new BookListCombinedDto(options, bookList)));
        }
Beispiel #5
0
        public ActionResult Index(SortFilterPageOptions options)
        {
            var context = new EfCoreContext();

            context.Database.Log = message => Trace.Write(message);
            var listService =
                new ListBooksService(context);

            var bookList = listService
                           .SortFilterPage(options)
                           .ToList();

            return(View(new BookListCombinedDto
                            (options, bookList)));
        }
Beispiel #6
0
        }                                                      //#A

        public IActionResult Index                             //#B
            (SortFilterPageOptions options)                    //#C
        {
            var listService =                                  //#D
                              new ListBooksService(_context);  //#D

            var bookList = listService                         //#E
                           .SortFilterPage(options)            //#E
                           .ToList();                          //#F

            var traceIdent = HttpContext.TraceIdentifier;      //REMOVE THIS FOR BOOK as it could be confusing

            return(View(new BookListCombinedDto                //#G
                            (traceIdent, options, bookList))); //#G
        }
Beispiel #7
0
        public async Task RunBookListAsync()
        {
            //SETUP
            var inMemDb = new SqliteInMemory();

            using (var context = inMemDb.GetContextWithSetup())
            {
                context.SeedDatabaseFourBooks();
                var service = new ListBooksService(context);

                //ATTEMPT
                var books = await service.SortFilterPage(new SortFilterPageOptions()).ToListAsync();

                //VERIFY
                books.Count.ShouldEqual(4);
            }
        }
        public async Task RunBookListAsync()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <EfCoreContext>();

            using (var context = new EfCoreContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabaseFourBooks();

                var service = new ListBooksService(context);

                //ATTEMPT
                var books = await service.SortFilterPage(new SortFilterPageOptions()).ToListAsync();

                //VERIFY
                books.Count.ShouldEqual(4);
            }
        }
Beispiel #9
0
        public async Task <IActionResult> Index  //#A
            (SortFilterPageOptions options)
        {
            var listService =
                new ListBooksService(_context);

            var bookList = listService //#B
                           .SortFilterPage(options)
                           .ToList();  //#C

            //Because of EF Core 2.0.0 bug https://github.com/aspnet/EntityFrameworkCore/issues/9570 I have dropped this back to sync
            //var bookList = await listService //#B
            //    .SortFilterPage(options)
            //    .ToListAsync(); //#C

            SetupTraceInfo();           //REMOVE THIS FOR BOOK as it could be confusing

            return(View(new BookListCombinedDto
                            (options, bookList)));
        }
Beispiel #10
0
        public void PageBooks(int pageSize)
        {
            //SETUP
            var       inMemDb  = new SqliteInMemory();
            const int numBooks = 12;

            using (var db = inMemDb.GetContextWithSetup())
            {
                db.SeedDatabaseDummyBooks(numBooks);

                //ATTEMPT
                var service     = new ListBooksService(db);
                var listOptions = new SortFilterPageOptions()
                {
                    PageSize = pageSize
                };
                var dtos = service.SortFilterPage(listOptions).ToList();

                //VERIFY
                dtos.Count.ShouldEqual(pageSize);
            }
        }
        public async Task PageBooks(int pageSize)
        {
            //SETUP
            var numBooks = 12;
            var options  = SqliteInMemory.CreateOptions <BookDbContext>();

            using (var context = new BookDbContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabaseDummyBooks(numBooks);

                //ATTEMPT
                var service     = new ListBooksService(context);
                var listOptions = new SortFilterPageOptions()
                {
                    PageSize = pageSize
                };
                var dtos = await(await service.SortFilterPageAsync(listOptions)).ToListAsync();

                //VERIFY
                dtos.Count.ShouldEqual(pageSize);
            }
        }
Beispiel #12
0
        public void OrderBooksBy(OrderByOptions orderByOptions)
        {
            //SETUP
            var numBooks = 5;
            var options  = SqliteInMemory.CreateOptions <EfCoreContext>();

            using (var context = new EfCoreContext(options))
            {
                context.Database.EnsureCreated();
                context.SeedDatabaseDummyBooks(numBooks);

                //ATTEMPT
                var service     = new ListBooksService(context);
                var listOptions = new SortFilterPageOptions()
                {
                    OrderByOptions = orderByOptions
                };
                var dtos = service.SortFilterPage(listOptions).ToList();

                //VERIFY
                dtos.Count.ShouldEqual(numBooks);
            }
        }