public void VisitorCountService_Test_UpdateVisitorCount()
        {
            // arrange
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "ProductService_Test_UpdateProduct")
                          .Options;

            var visitorCountEntity = new VisitorCount {
                Date = DateTime.Now, ViewCount = 100
            };

            using (var context = new ApplicationDbContext(options))
            {
                context.VisitorCounts.Add(visitorCountEntity);
                context.SaveChanges();
            }

            using (var context = new ApplicationDbContext(options))
            {
                var service = new Service(context);

                // act
                service.VisitorCountService.UpdateVisitorCount(visitorCountEntity);

                // assert
                Assert.Equal(101, service.VisitorCountService.GetAllVisitorCount().Single().ViewCount);
            }
        }
        public void InsertVisitorCount(VisitorCount visitorCount)
        {
            if (visitorCount == null)
            {
                throw new ArgumentNullException(nameof(visitorCount));
            }

            visitorCount.Date = visitorCount.Date.Date;

            _visitorCountRepository.Insert(visitorCount);
            _visitorCountRepository.SaveChanges();
        }
        public void UpdateVisitorCount(VisitorCount visitorCount)
        {
            if (visitorCount == null)
            {
                throw new ArgumentNullException(nameof(visitorCount));
            }

            visitorCount.Date = visitorCount.Date.Date;
            visitorCount.ViewCount++;

            _visitorCountRepository.Update(visitorCount);
            _visitorCountRepository.SaveChanges();
        }
        public void VisitorCountService_Test_InsertVisitorCount()
        {
            // arrange
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "VisitorCountService_Test_InsertVisitorCount")
                          .Options;

            var visitorCountEntity = new VisitorCount {
                Date = DateTime.Now, ViewCount = 100
            };

            using (var context = new ApplicationDbContext(options))
            {
                var service = new Service(context);

                // act
                service.VisitorCountService.InsertVisitorCount(visitorCountEntity);

                // assert
                Assert.Equal(1, service.VisitorCountService.GetAllVisitorCount().Count);
            }
        }
示例#5
0
        public Task Invoke(HttpContext context)
        {
            if (context.Session.GetString("visitor_counter") == null || context.Session.GetString("visitor_counter") != "recorder")
            {
                context.Session.SetString("visitor_counter", "recorder");
                var visitorCountEntity = _visitorCounterService.GetVisitorCountByDate(DateTime.Now);
                if (visitorCountEntity != null)
                {
                    _visitorCounterService.UpdateVisitorCount(visitorCountEntity);
                }
                else
                {
                    var visitorModel = new VisitorCount
                    {
                        Date      = DateTime.Now,
                        ViewCount = 1
                    };
                    _visitorCounterService.InsertVisitorCount(visitorModel);
                }
            }

            return(_next(context));
        }
        public void VisitorCountService_Test_GetVisitorCountByDate()
        {
            // arrange
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "VisitorCountService_Test_GetVisitorCountByDate")
                          .Options;

            var visitorCountEntity = new VisitorCount {
                Date = DateTime.Now.Date, ViewCount = 100
            };

            using (var context = new ApplicationDbContext(options))
            {
                context.VisitorCounts.Add(visitorCountEntity);
                context.SaveChanges();
            }

            using (var context = new ApplicationDbContext(options))
            {
                var service = new Service(context);
                // assert
                Assert.NotNull(service.VisitorCountService.GetVisitorCountByDate(DateTime.Now));
            }
        }