void setLabsVisiting(StatsStudentModel student, LaboratoryWorksModel labs) { if (_statisticsPage == StatsPageEnum.LabsVisiting) { if (Servers.Current == Servers.EduCatsAddress) { var visitingLabsTestResult = labs.LabVisitingMark.Select(v => { var lab = _currentLabsVisitingList.FirstOrDefault( l => l.ProtectionLabId == v.ScheduleProtectionLabId); var result = string.IsNullOrEmpty(v.Mark) ? _emptyRatingString : v.Mark; return(new StatsResultsPageModel(null, lab?.Date, setCommentByRole(v.Comment), result)); }); Marks = new List <StatsResultsPageModel>(visitingLabsTestResult); } else { var visitingLabsResult = student.VisitingList.Select(v => { var lab = _currentLabsVisitingList.FirstOrDefault( l => l.ProtectionLabId == v.ProtectionLabId); var result = string.IsNullOrEmpty(v.Mark) ? _emptyRatingString : v.Mark; return(new StatsResultsPageModel(null, lab?.Date, setCommentByRole(v.Comment), result)); }); Marks = new List <StatsResultsPageModel>(visitingLabsResult); } } else { var practVisitingTestResult = labs.PracticalVisitingMark.Select(v => { var lab = _currentPractVisitingList.FirstOrDefault( l => l.ProtectionLabId == v.ScheduleProtectionPracticalId); var result = string.IsNullOrEmpty(v.Mark) ? _emptyRatingString : v.Mark; return(new StatsResultsPageModel(null, lab?.Date, setCommentByRole(v.Comment), result)); }); Marks = new List <StatsResultsPageModel>(practVisitingTestResult); } }
void setMarks(StatsStudentModel student, LaboratoryWorksModel labs) { if (_statisticsPage == StatsPageEnum.LabsRating) { if (Servers.Current == Servers.EduCatsAddress) { var marksTestResults = labs.LabsMarks?.Select(m => { var lab = _currentLabsMarksList?.FirstOrDefault(l => l.LabId == m.LabId); var labTitle = lab == null ? null : $"{lab.ShortName}. {lab.Theme}"; var result = string.IsNullOrEmpty(m.Mark) ? _emptyRatingString : m.Mark; return(new StatsResultsPageModel(labTitle, m.Date, setCommentByRole(m.Comment), result)); }); Marks = new List <StatsResultsPageModel>(marksTestResults); } else { var marksResults = student.MarkList?.Select(m => { var lab = _currentLabsMarksList?.FirstOrDefault(l => l.LabId == m.LabId); var labTitle = lab == null ? null : $"{lab.ShortName}. {lab.Theme}"; var result = string.IsNullOrEmpty(m.Mark) ? _emptyRatingString : m.Mark; return(new StatsResultsPageModel(labTitle, m.Date, setCommentByRole(m.Comment), result)); }); Marks = new List <StatsResultsPageModel>(marksResults); } } else { var practMarkResults = labs.PracticalsMarks?.Select(m => { var lab = _currentPractMarksList?.FirstOrDefault(l => l.LabId == m.PracticalId); var labTitle = lab == null ? null : $"{lab.ShortName}. {lab.Theme}"; var result = string.IsNullOrEmpty(m.Mark) ? _emptyRatingString : m.Mark; return(new StatsResultsPageModel(labTitle, m.Date, setCommentByRole(m.Comment), result)); }); Marks = new List <StatsResultsPageModel>(practMarkResults); } }
protected virtual async Task getAndSetStatistics() { try { var studentsStatistics = await getStatistics(); _students = studentsStatistics; var currentPractStudentStatistics = new LaboratoryWorksModel(); var studentsPractStatistics = await DataAccess.GetTestPracticialStatistics(CurrentSubject.Id, PlatformServices.Preferences.GroupId); if (Servers.Current == Servers.EduCatsAddress) { var currentStudentStatistics = new StatsStudentModel(); var studentTestStatistics = await DataAccess.GetTestStatistics(CurrentSubject.Id, PlatformServices.Preferences.GroupId); var currentTestStudentStatistics = studentTestStatistics.Students.SingleOrDefault( s => s.StudentId == PlatformServices.Preferences.UserId); currentPractStudentStatistics = studentsPractStatistics.Students.SingleOrDefault( s => s.StudentId == PlatformServices.Preferences.UserId); setChartData(currentStudentStatistics, currentTestStudentStatistics, currentPractStudentStatistics); _studentsTest = studentTestStatistics; } else { var labsTest = new LaboratoryWorksModel(); var currentStudentStatistics = new StatsStudentModel(); studentsStatistics = await getStatistics(); currentStudentStatistics = studentsStatistics.SingleOrDefault( s => s.StudentId == PlatformServices.Preferences.UserId); setChartData(currentStudentStatistics, labsTest, currentPractStudentStatistics); _students = studentsStatistics; } } catch (Exception ex) { AppLogs.Log(ex); } }
void setChartData(StatsStudentModel stats, LaboratoryWorksModel currentPractStudentStatistics, LaboratoryWorksModel worksModel) { try { double avgLabs = 0; double avgTests = 0; double avgPract = 0; double rating = 0; if (stats == null) { stats = new StatsStudentModel(); } if (Servers.Current == Servers.EduCatsAddress) { avgPract = calculateAvgPractMarks(worksModel.PracticalsMarks); AveragePract = avgPract.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); avgLabs = calculateAvgLabsMarkTest(currentPractStudentStatistics.LabsMarks); AverageLabs = avgLabs.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); avgTests = currentPractStudentStatistics.TestMark.StringToDouble(); AverageTests = avgTests.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); if (worksModel.PracticalsMarks.Count == 0) { rating = (avgLabs + avgTests) / 2; Rating = rating.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); ChartEntries = new List <double> { avgLabs, avgTests, rating, avgPract }; setNotEnoughDetails(avgLabs == 0 && avgTests == 0 && rating == 0); } else { rating = (avgLabs + avgTests + avgPract) / 3; Rating = rating.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); ChartEntries = new List <double> { avgLabs, avgTests, rating, avgPract }; setNotEnoughDetails(avgLabs == 0 && avgTests == 0 && avgPract == 0 && rating == 0); } } else { avgLabs = calculateAvgLabsMark(stats.MarkList); AverageLabs = avgLabs.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); avgTests = stats.AverageTestMark.StringToDouble(); AverageTests = avgTests.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); rating = (avgLabs + avgTests) / 2; Rating = rating.ToString(_doubleStringFormat, CultureInfo.InvariantCulture); ChartEntries = new List <double> { avgLabs, avgTests, rating }; setNotEnoughDetails(avgLabs == 0 && avgTests == 0 && rating == 0); } } catch (Exception ex) { AppLogs.Log(ex); } }