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)); }
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); }
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); }
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); }
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); }
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); }
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()); }
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); }
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()); }
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); }
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)); }
public void AddUserStats(OverallViewModel model, User user, int totalRequests, int todayRequests, DateTime lastActivity) { model.AddUserStats(user, totalRequests, todayRequests, lastActivity); }