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);
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }