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));
        }
Esempio n. 4
0
        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));
            }
        }