Exemplo n.º 1
0
        public ActionResult Overall()
        {
            var activitiesByUser = this.SecurityStorage
                                   .GetUserActivities()
                                   .AsParallel()
                                   .GroupBy(ua => ua.UserRef)
                                   .Select(g => new
            {
                UserRef = g.Key,
                TotalNumberOfRequests = g.Count(),
                TodayNumberOfRequests = g.Count(ua => ua.RequestStartTime.Date == DateTime.Today),
                LastActivityTime      = g.Max(ua => ua.RequestStartTime)
            });

            var userService = SecurityPlugin.Container.Resolve <IUserService>();
            var users       = userService.GetUsers().ToList();

            var model = new OverallViewModel();

            foreach (var stats in activitiesByUser.OrderBy(x => x.UserRef))
            {
                model.AddUserStats(
                    users.FirstOrDefault(u => u.Id == stats.UserRef),
                    stats.TotalNumberOfRequests,
                    stats.TodayNumberOfRequests,
                    stats.LastActivityTime);
            }

            return(View(model));
        }
Exemplo n.º 2
0
        public void GetStatsTest()
        {
            var overallViewModel = new OverallViewModel("1");
            //create user
            var tempUser = CreateUser("user1", "User1", true);

            //add stats
            AddUserStats(overallViewModel, tempUser, 120, 70, DateTime.Today);

            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "user1") == 1);
            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "user15") == 0);
        }
Exemplo n.º 3
0
        public void GetUserActivityForTodayTest()
        {
            var overallViewModel = new OverallViewModel("1");
            //create users
            var tempUser1 = CreateUser("user1", "User1", true);
            var tempUser2 = CreateUser("user2", "User2", true);

            //add their stats
            AddUserStats(overallViewModel, tempUser1, 120, 70, DateTime.Today);
            AddUserStats(overallViewModel, tempUser2, 60, 60, DateTime.Today);

            Assert.True(overallViewModel.GetUserActivityForToday("user1").Sum(s => s.TodayNumberOfRequests) == 70);
        }
Exemplo n.º 4
0
        public void GetStatsTest()
        {
            var overallViewModel = new OverallViewModel("1");

            var tempUser = new User {
                UserId = "user1", Name = "User1", IsApproved = true
            };

            overallViewModel.AddUserStats(tempUser, 120, 70, DateTime.Today);

            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "user1") == 1);

            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "user15") == 0);
        }
Exemplo n.º 5
0
        public void AddUserStatsTest()
        {
            var overallViewModel = new OverallViewModel("1");
            //create user
            var tempUser = CreateUser("User1", "User1", true);

            // must be zero
            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 0);

            //add stats
            AddUserStats(overallViewModel, tempUser, 120, 70, DateTime.Today);

            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "User1") == 1);
            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 120);
        }
Exemplo n.º 6
0
        public void AddUserStatsTest()
        {
            var overallViewModel = new OverallViewModel("1");

            var tempUser = new User {
                UserId = "User1", Name = "User1", IsApproved = true
            };

            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 0);

            overallViewModel.AddUserStats(tempUser, 120, 70, DateTime.Today);

            Assert.True(overallViewModel.GetStats().Count(s => s.User.UserId == "User1") == 1);

            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 120);
        }
Exemplo n.º 7
0
        public void GetOverallNumberOfRequestsForTodayTest()
        {
            var overallViewModel = new OverallViewModel();
            //create users
            var tempUser1 = CreateUser("User1", "User1", true);
            var tempUser2 = CreateUser("User2", "User2", true);

            // must be zero
            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequestsForToday(), 0);

            //add their stats
            AddUserStats(overallViewModel, tempUser1, 120, 70, DateTime.Today);
            AddUserStats(overallViewModel, tempUser2, 60, 60, DateTime.Today);

            // check if today requests are summed
            Assert.AreEqual(130, overallViewModel.GetOverallNumberOfRequestsForToday());
        }
Exemplo n.º 8
0
        public void GetUserActivityTest()
        {
            var overallViewModel = new OverallViewModel("1");

            var tempUser1 = new User {
                UserId = "user1", Name = "User1", IsApproved = true
            };

            var tempUser2 = new User {
                UserId = "user2", Name = "User2", IsApproved = true
            };

            overallViewModel.AddUserStats(tempUser1, 120, 70, DateTime.Today);

            overallViewModel.AddUserStats(tempUser2, 60, 60, DateTime.Today);

            Assert.True(overallViewModel.GetUserActivity("user1").Sum(s => s.TotalNumberOfRequests) == 120);
        }
Exemplo n.º 9
0
        public void GetOverallNumberOfRequestsForTodayTest()
        {
            var overallViewModel = new OverallViewModel("1");

            var tempUser1 = new User {
                UserId = "User1", Name = "User1", IsApproved = true
            };

            var tempUser2 = new User {
                UserId = "User2", Name = "User2", IsApproved = true
            };

            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequestsForToday(), 0);

            overallViewModel.AddUserStats(tempUser1, 120, 70, DateTime.Today);

            overallViewModel.AddUserStats(tempUser2, 60, 60, DateTime.Today);

            Assert.AreEqual(130, overallViewModel.GetOverallNumberOfRequestsForToday());
        }
Exemplo n.º 10
0
        public void GetOverallNumberOfRequestsTest()
        {
            var overallViewModel = new OverallViewModel("1");

            var tempUser1 = new User {
                UserId = "user1", Name = "User1", IsApproved = true
            };

            var tempUser2 = new User {
                UserId = "user2", Name = "User2", IsApproved = true
            };

            //Must be zero;
            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 0);

            overallViewModel.AddUserStats(tempUser1, 120, 70, DateTime.Today);

            overallViewModel.AddUserStats(tempUser2, 60, 60, DateTime.Today);

            //Check if request of all users are summed;
            Assert.AreEqual(overallViewModel.GetOverallNumberOfRequests(), 180);
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Overall(int year)
        {
            var race = await this.context.Races
                       .Include(x => x.RaceRunners)
                       .ThenInclude(x => x.Runner)
                       .Include(x => x.RaceRunners)
                       .ThenInclude(x => x.AgeGroup)
                       .Include(x => x.Results)
                       .ThenInclude(x => x.Runner)
                       .FirstAsync(x => x.Date.Year == year);


            var results = new List <ResultViewModel>();

            foreach (var dbResult in race.Results.OrderBy(x => x.OverallPlace))
            {
                var ageGroup = race.RaceRunners.First(x => x.RunnerId == dbResult.Runner.Id).AgeGroup;

                var result = new ResultViewModel
                {
                    Place        = dbResult.OverallPlace,
                    Name         = $"{dbResult.Runner.FirstName} {dbResult.Runner.LastName}",
                    Gender       = dbResult.Runner.Gender,
                    AgeGroupName = ageGroup.Name,
                    Time         = dbResult.Time,
                    RaceName     = race.Name
                };

                results.Add(result);
            }

            var viewModel = new OverallViewModel
            {
                Race    = race,
                Results = results
            };

            return(View(viewModel));
        }
Exemplo n.º 12
0
 public void AddUserStats(OverallViewModel model, User user, int totalRequests,
                          int todayRequests, DateTime lastActivity)
 {
     model.AddUserStats(user, totalRequests, todayRequests, lastActivity);
 }