public void Late(DateTime submittedDate, DateTime dueDate, UserVMish userVMish) { if (0 <= DateTime.Compare(submittedDate, dueDate)) { userVMish.stat.Add(false); userVMish.Late.Add(submittedDate.Subtract(dueDate)); } else if (0 >= DateTime.Compare(submittedDate, dueDate)) { userVMish.stat.Add(true); userVMish.Late.Add(dueDate.Subtract(submittedDate)); } else { userVMish.stat.Add(true); userVMish.Late.Add(TimeSpan.MinValue); } }
//This is the method I'm really testing. public int GradeHelper(List <Document> list, List <Grade> gradables, int userID) { var UserVMish = new UserVMish(); UserVMish.stat = new List <bool>(); UserVMish.Late = new List <TimeSpan>(); //var submissions = db.Documents.Where(l => l.ClassID == classID && l.UserID == i.UsersID).ToList(); int divisor = 0; int total = 0; UserVMish.Grade = new List <Models.Grade>(); foreach (var l in gradables) { Document d; StudentQuizze q; if (l.Assignment != null) { d = db.Documents.Where(k => k.GradeID == l.GradeID && k.UserID == userID).FirstOrDefault(); if (d != null) { if (d.Grade != -1) { var contribution = l.Assignment.Weight * d.Grade; total = contribution + total; divisor = l.Assignment.Weight + divisor; } var submittedDate = d.Date; var dueDate = l.Assignment.DueDate.Value; //Late(submittedDate, dueDate, UserVMish); } else if (DateTime.Compare(DateTime.Parse(l.DateApplied.ToString()), DateTime.Now) < 0) { total = total + 0; divisor = divisor + l.Assignment.Weight; } } if (l.Quizze != null) { q = db.StudentQuizzes.Where(k => k.QuizID == l.QuizID && k.UserID == userID).FirstOrDefault(); if (q != null) { //int contribution = (l.Quizze.GradeWeight * (q.TotalPoints / q.Quizze.TotalPoints) *100 )?? default(int); int contribution = (l.Quizze.GradeWeight * ((q.TotalPoints * 100) / q.Quizze.TotalPoints)) ?? default(int); total = (contribution) + total; divisor = l.Quizze.GradeWeight + divisor; var submittedDate = q.Quizze.EndTime; var dueDate = l.Quizze.EndTime; //Late(submittedDate, dueDate, UserVMish); } else if (DateTime.Compare(DateTime.Parse(l.DateApplied.ToString()), DateTime.Now) < 0) { total = total + (0); divisor = divisor + l.Quizze.GradeWeight; } } } if (divisor == 0) { return(total = 0); } else { return(total = total / divisor); } }