public static string CourseResultOutput(ICourseResult courseResult)
        {
            var sb = new StringBuilder();

            sb.AppendLine($"  * {courseResult.Course.Name}: Points - {courseResult.CoursePoints}, Grade - {courseResult.Grade}");

            return(sb.ToString().TrimEnd());
        }
Esempio n. 2
0
        protected void ProcessNonWeightedGrade(bool overallGrade)
        {
            var castedCourse = (CourseResult)Course;

            castedCourse.PointsEarned = castedCourse.PointsEarned = castedCourse.Evaluations.Sum(e => e.PointsEarned);

            if (overallGrade)
            {
                castedCourse.PointsPossibleOverall = castedCourse.Evaluations.Sum(e => e.PointsPossibleOverall);
                castedCourse.GradeOverallRaw       = CalculateRawPercentage(castedCourse.PointsEarned, castedCourse.PointsPossibleOverall);
                castedCourse.GradeOverallFriendly  = GetFriendlyPercent(castedCourse.GradeOverallRaw);
            }
            else
            {
                castedCourse.PointsPossibleToDate = castedCourse.Evaluations.Sum(e => e.PointsPossibleToDate);
                castedCourse.GradeToDateRaw       = CalculateRawPercentage(castedCourse.PointsEarned, castedCourse.PointsPossibleToDate);
                castedCourse.GradeToDateFriendly  = GetFriendlyPercent(castedCourse.GradeToDateRaw);
            }

            Course = castedCourse;
        }
Esempio n. 3
0
        public CourseWhatIfDomainModel CalcWhatIfGrade(IEnumerable <EvaluationDomainModel> whatIfModels)
        {
            var evalSpells = whatIfModels.Select(w => new EvaluationConjureGradeResultModel
            {
                EvaluationId          = w.Id,
                EvaluationName        = w.Name,
                PointsEarned          = w.PointsEarned,
                PointsPossibleOverall = w.TotalPointsPossible,
                WeightAmount          = w.Weight
            }).ToList();

            var evalWizard = new EvaluationWizard();

            foreach (var spell in evalSpells)
            {
                evalWizard.Evaluation = spell;
                evalWizard.UpdateGradeOverAll();
                spell.GradeOverallFriendly = evalWizard.Evaluation.GradeOverallFriendly;
            }

            var courseWizard = new CourseWizard();

            ICourseResult courseSpell = null;

            if (evalSpells.Any(es => es.WeightAmount != 1))
            {
                evalSpells = evalSpells.Select(e => new EvaluationConjureGradeResultModel
                {
                    WeightAmount          = e.WeightAmount,
                    Weighted              = true, PointsEarned = e.PointsEarned,
                    PointsPossibleOverall = e.PointsPossibleOverall,
                    EvaluationId          = e.EvaluationId,
                    EvaluationName        = e.EvaluationName,
                    GradeOverallFriendly  = e.GradeOverallFriendly
                }).ToList();

                courseSpell = new WeightedCourseResult
                {
                    Evaluations = evalSpells.ToList()
                };

                courseWizard.Course = courseSpell;

                courseWizard.UpdateGradeOverall();
                courseWizard.UpdateAllGrades();

                return(new CourseWhatIfDomainModel
                {
                    WhatIfGrade = courseWizard.OverallGradeFriendly,
                    WhatIfEvaluations = evalSpells.Select(e => new EvaluationWhatIfDomainModel
                    {
                        EvaluationId = (Guid)e.EvaluationId,
                        EvaluationName = e.EvaluationName,
                        WhatIfGrade = e.GradeOverallFriendly
                    }).ToList()
                });
            }
            else
            {
                courseSpell = new CourseResult
                {
                    Evaluations = evalSpells.ToList()
                };

                courseWizard.Course = courseSpell;

                courseWizard.UpdateGradeOverall();

                return(new CourseWhatIfDomainModel
                {
                    WhatIfGrade = courseWizard.OverallGradeFriendly,
                    WhatIfEvaluations = evalSpells.Select(e => new EvaluationWhatIfDomainModel
                    {
                        EvaluationId = (Guid)e.EvaluationId,
                        EvaluationName = e.EvaluationName,
                        WhatIfGrade = e.GradeOverallFriendly
                    }).ToList()
                });
            }
        }
Esempio n. 4
0
        private void CalculateGrade(CourseEntity course)
        {
            var courseWizard = new CourseWizard();
            var evalSpells   = new List <EvaluationResult>();

            var evals = EvaluationService.GetEvaluationsForCourse(course.Id);

            foreach (var eval in evals)
            {
                var castedEval = (EvaluationDomainModel)eval;
                var weighted   = castedEval.Weight != 1;

                evalSpells.Add(new EvaluationResult
                {
                    Weighted              = weighted,
                    WeightAmount          = castedEval.Weight,
                    PointsEarned          = castedEval.PointsEarned,
                    GradeToDateRaw        = castedEval.CurrentPointsGrade,
                    GradeOverallRaw       = castedEval.FinalPointsGrade,
                    PointsPossibleOverall = castedEval.TotalPointsPossible,
                    PointsPossibleToDate  = castedEval.CurrentPointsPossible
                });
            }

            ICourseResult courseSpell = null;

            if (evalSpells.Any(es => es.Weighted))
            {
                //foreach (var eval in evalSpells)
                //{
                //    eval.GradeOverallRaw =
                //        MathApprentice.CalculateRawPercentage(eval.PointsEarned, eval.PointsPossibleOverall);
                //    eval.GradeToDateRaw =
                //        MathApprentice.CalculateRawPercentage(eval.PointsEarned, eval.PointsPossibleToDate);
                //}

                courseSpell = new WeightedCourseResult
                {
                    Evaluations = evalSpells,
                };

                courseWizard.Course = courseSpell;

                courseWizard.UpdateAllGrades();

                var courseResult = (WeightedCourseResult)courseWizard.Course;

                course.CurrentPointsGrade = courseResult.GradeToDateRaw;
                course.FinalPointsGrade   = courseResult.GradeOverallRaw;
            }
            else
            {
                courseSpell = new CourseResult
                {
                    Evaluations = evalSpells
                };

                courseWizard.Course = courseSpell;

                courseWizard.UpdateAllGrades();

                var courseResult = (CourseResult)courseWizard.Course;

                course.PointsEarned          = courseResult.PointsEarned;
                course.TotalPointsPossible   = courseResult.PointsPossibleOverall;
                course.CurrentPointsPossible = courseResult.PointsPossibleToDate;
                course.CurrentPointsGrade    = courseResult.GradeToDateRaw;
                course.FinalPointsGrade      = courseResult.GradeOverallRaw;
            }
        }