public async Task <IActionResult> Stats(AdminStatsViewModel statsModel) { var userTest = await _db.UserTests.FindAsync(statsModel.DeletedTestId, statsModel.DeletedUserId); if (userTest != null) { var userAnswers = await _db.UserAnswers .Include(ua => ua.TestQuestion) .Where(ua => ua.UserId == statsModel.DeletedUserId && ua.TestQuestion.TestId == statsModel.DeletedTestId) .ToListAsync(); _db.UserAnswers.RemoveRange(userAnswers); _db.UserTests.Remove(userTest); await _db.SaveChangesAsync(); return(RedirectToAction("Stats", new { algorithmId = statsModel.AlgorithmId, testId = statsModel.TestId, groupId = statsModel.GroupId, orderBy = statsModel.OrderBy })); } return(NotFound()); }
public async Task <IActionResult> GetOddsInLeaguesStats(int TipTypeId) { AdminStatsViewModel viewModel = new AdminStatsViewModel(); viewModel.Odds = await leagueRepository.GetAllOddsByTipType(TipTypeId); viewModel.LeagueStatsByOdds = await leagueRepository.GetLeagueStatsByOdds(TipTypeId); ViewData["TipTypeId"] = TipTypeId; return(View("LeagueStatsAdvanced", viewModel)); }
public async Task <IActionResult> Stats(int?algorithmId, int?testId, int?groupId, int?orderBy) { var algorithms = await _db.Algorithms.ToListAsync(); algorithms.Insert(0, new Algorithm { Id = 0, Name = "Все" }); var tests = await _db.Tests.ToListAsync(); tests.Insert(0, new Test { Id = 0, Name = "Все" }); var groups = await _db.Groups.OrderBy(g => g.Name).ToListAsync(); groups.Insert(0, new Group { Id = 0, Name = "Все" }); var userTests = await _db.UserTests .Include(ut => ut.User) .Include(ut => ut.Test) .ThenInclude(t => t.Algorithm) .OrderByDescending(ut => ut.PassingTime) .ToListAsync(); if (algorithmId != null && algorithmId != 0) { userTests = userTests.Where(ut => ut.Test.AlgorithmId == algorithmId).ToList(); } if (testId != null && testId != 0) { userTests = userTests.Where(ut => ut.Test.Id == testId).ToList(); } if (groupId != null && groupId != 0) { userTests = userTests.Where(ut => ut.User.GroupId == groupId).ToList(); } if (orderBy != null && orderBy != 0) { userTests = userTests.OrderBy(ut => ut.PassingTime).ToList(); } else { userTests = userTests.OrderByDescending(ut => ut.PassingTime).ToList(); } var statsModel = new AdminStatsViewModel { UserTests = userTests, Algorithms = algorithms, Tests = tests, Groups = groups, AlgorithmId = algorithmId, TestId = testId, GroupId = groupId, OrderBy = orderBy }; return(View(statsModel)); }
public ActionResult Show(int class_id = -1) { if (class_id == -1) { var classes = DB.GetClasses(); return(View(classes)); } else { var students = StudentsRepository.GetAllStudents(class_id); var subjects = DB.GetClassSubjects(class_id); string studClass = students[0].Class.Number.ToString(); if (students[0].Class.Letter == 1) { studClass += "a"; } else if (students[0].Class.Letter == 2) { studClass += "б"; } else if (students[0].Class.Letter == 3) { studClass += "в"; } else if (students[0].Class.Letter == 4) { studClass += "г"; } else if (students[0].Class.Letter == 5) { studClass += "д"; } var attendance = AttendanceRepository.CalculateClassAttendance(DateTime.Now.AddYears(-2), DateTime.Now.AddYears(2), class_id); var stats1 = StatsHelpers.GetSubjectsStats(21, class_id, false); var zipStats1 = StatsHelpers.GetSubjectsStats(21, class_id, true); var stats2 = StatsHelpers.GetSubjectsStats(23, class_id, false); var zipStats2 = StatsHelpers.GetSubjectsStats(23, class_id, true); StatsViewModel vm1 = new StatsViewModel() { AllSubjects = stats1, AllZipSubjects = zipStats1, Semester = 1 }; StatsViewModel vm2 = new StatsViewModel() { AllSubjects = stats2, AllZipSubjects = zipStats2, Semester = 3 }; AdminStatsViewModel vm = new AdminStatsViewModel() { Students = students, Subjects = subjects, SelectedClass = studClass, Attendance = attendance, Semester1 = vm1, Semester2 = vm2 }; return(View("ShowClass", vm)); } }