예제 #1
0
        private void cmbComment_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems == null || e.AddedItems.Count != 1)
            {
                return;
            }
            var text = e.AddedItems[0] as string;

            text = Maintenance.FormatCommentFromList(text);

            if (string.IsNullOrWhiteSpace(text))
            {
                staComment.Text = entComment.Text;
            }
            else
            {
                staComment.Text = text + " " + entComment.Text;
            }
        }
예제 #2
0
        public void LoadGrade(string studentName, GradeViewModel grade)
        {
            _studentName = studentName;
            _grade       = grade;

            IsEnabled = (RightsEnum.Success == UserViewModel.CurrentUser.CanEdit(_grade));

            if (CourseViewModel.HasSpecialGrade(grade.Subject))
            {
                entSpecialGrade.Visibility = System.Windows.Visibility.Visible;
                staSpecialGrade.Visibility = System.Windows.Visibility.Visible;
            }

            Maintenance.LetterGrades.Keys.ToList().ForEach(g => cmbLetterGrade.Items.Add(g));

            Maintenance.Comments.ToList().ForEach(g => cmbComment.Items.Add(g));
            cmbComment.SelectedIndex = 0;

            staStudent.Content   = studentName;
            staCourse.Content    = _grade.Subject + " for " + _grade.MarkingPeriod + " " + _grade.Group + " with " + _grade.Teacher;
            cmbLetterGrade.Text  = _grade.LetterGrade;
            entSpecialGrade.Text = _grade.SpecialGrade;

            var comment = _grade.Comment;

            foreach (var c in Maintenance.Comments)
            {
                var formattedComment = Maintenance.FormatCommentFromList(c);
                if (string.IsNullOrWhiteSpace(formattedComment))
                {
                    continue;
                }
                if (comment.StartsWith(formattedComment))
                {
                    cmbComment.Text = c;
                    comment         = comment.Substring(formattedComment.Length).Trim();
                    break;
                }
            }
            entComment.Text = comment;
        }
예제 #3
0
 private void entComment_TextChanged(object sender, TextChangedEventArgs e)
 {
     staComment.Text = Maintenance.FormatCommentFromList(cmbComment.Text) + " " + entComment.Text;
 }
        static public Gradebook CreateDemo()
        {
            _rnd = new Random(1116);
            var rv         = new Gradebook();
            var firstNames = new List <string>()
            {
                "Dan", "Kelly", "Allegra", "Ramsey", "Max", "Lexi", "Indy"
            };
            var lastNames = new List <string>()
            {
                "Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"
            };
            var dobStart = DateTime.Now.AddYears(-14);
            var dobEnd   = DateTime.Now.AddYears(-5);
            int iCourse  = 1000;

            var homeroomTeachers = new Dictionary <string, string>();
            int iClassroom       = 0;

            foreach (var gradeLevel in Maintenance.GradeLevelShorts)
            {
                homeroomTeachers.Add(gradeLevel, Maintenance.Users.Where(u => u.Role == RoleEnum.ClassroomInstructor).Select(t => t.Name).ToList()[iClassroom++]);
            }
            foreach (var quarter in MarkingPeriods.Singleton.Where(q => q.EndDate <= MarkingPeriod.Current.EndDate).OrderByDescending(q => q.ToString()))
            {
                foreach (var gradeLevel in Maintenance.GradeLevelShorts)
                {
                    foreach (var subject in Maintenance.Subjects)
                    {
                        var teacher = string.Empty;
                        if (CourseViewModel.ClassroomCourse(subject))
                        {
                            teacher = homeroomTeachers[gradeLevel];
                        }
                        else if (CourseViewModel.SmallGroupCourse(subject))
                        {
                            teacher = RandString(Maintenance.Users.Where(u => u.Role == RoleEnum.SmallGroupInstructor).Select(t => t.Name).ToList());
                        }
                        else if (CourseViewModel.SpecialCourse(subject))
                        {
                            teacher = RandString(Maintenance.Users.Where(u => u.Role == RoleEnum.SpecialInstructor).Select(t => t.Name).ToList());
                        }
                        else
                        {
                            teacher = null;
                        }

                        rv.Course.AddCourseRow((iCourse++).ToString(), subject, quarter.ToString(), RandString(Maintenance.Groups), teacher, Maintenance.GradeLevelNumber(gradeLevel));
                    }
                }
            }

            var extraComments = new List <string>()
            {
                "", "always", "never", "great", "usually", "best"
            };

            for (int iStudent = 0; iStudent < 100; iStudent++)
            {
                var name       = firstNames[iStudent % 7] + " " + lastNames[iStudent % (lastNames.Count)];
                var dob        = dobStart.AddDays(iStudent * (dobEnd - dobStart).TotalDays / 100);
                var enrolled   = dob.AddYears(5);
                var gradeLevel = AddGradeLevel(Maintenance.GradeLevelShorts[0], (DateTime.Today.Year - enrolled.Year));
                if (gradeLevel == null)
                {
                    //handle k better
                    gradeLevel = Maintenance.GradeLevelShorts.Last();
                }

                var student = rv.Student.AddStudentRow(Gradebook.MakeStudentKey(name, dob), name, dob, iStudent + " Fake St", "Bel Air, MD 22222", gradeLevel, enrolled, DateTime.MaxValue);

                foreach (var course in rv.Course.OrderByDescending(c => c.Quarter))
                {
                    var mpk       = MarkingPeriodKey.Parse(course.Quarter);
                    var mp        = MarkingPeriods.Singleton.Find(mpk);
                    var diffYears = MarkingPeriodKey.Current.EndingSchoolYear - mpk.EndingSchoolYear;

                    if (course.Level == Maintenance.GradeLevelNumber(AddGradeLevel(student.GradeLevel, 0 - diffYears)))
                    {
                        if (_rnd.NextDouble() < .1)
                        {
                            rv.Attendance.AddAttendanceRow(student, mp.StartDate.AddDays(_rnd.Next(0, 30)), AttendanceStatus.Absent.ToString());
                        }
                        if (_rnd.NextDouble() < .1)
                        {
                            rv.Attendance.AddAttendanceRow(student, mp.StartDate.AddDays(_rnd.Next(0, 30)), AttendanceStatus.Tardy.ToString());
                        }

                        if (mpk.Equals(MarkingPeriodKey.Current) && _rnd.Next(0, 2) == 0)
                        {
                            rv.Grade.AddGradeRow(student, course, string.Empty, string.Empty, string.Empty, ApprovalStage.Open.ToString());
                        }
                        else
                        {
                            var stage = ApprovalStage.Office;
                            if (mpk.Equals(MarkingPeriodKey.Current))
                            {
                                if (_rnd.Next(0, 2) == 0)
                                {
                                    stage = ApprovalStage.Instructor;
                                }
                                else
                                {
                                    stage = ApprovalStage.Classroom;
                                }
                            }

                            var specialGrade = string.Empty;
                            if (CourseViewModel.HasSpecialGrade(course.SubjectName))
                            {
                                if (course.SubjectName == "Reading")
                                {
                                    specialGrade = (int.Parse(course.Level) + _rnd.Next(0, 5)).ToString() + "-" + _rnd.Next(1, 10);
                                }
                                else if (course.SubjectName == "Math")
                                {
                                    specialGrade = (int.Parse(course.Level) + _rnd.Next(0, 5)).ToString() + "(" + _rnd.Next(1, 2).ToString() + ")";
                                }
                                else if (course.SubjectName == "Written Expression")
                                {
                                    specialGrade = "Paragraph";
                                }
                            }
                            rv.Grade.AddGradeRow(student, course, RandString(Maintenance.LetterGrades.Keys.ToList(), 3), specialGrade, Maintenance.FormatCommentFromList(RandString(Maintenance.Comments)) + " " + RandString(extraComments), stage.ToString());
                        }
                    }
                }
                var  quarters = MarkingPeriods.Singleton.OrderByDescending(q => q.ToString());
                bool withdraw = false;
                if (iStudent % 33 == 0)
                {
                    quarters = MarkingPeriods.Singleton.OrderBy(q => q.ToString());
                    withdraw = true;
                }

                foreach (var quarter in quarters)
                {
                    if (enrolled > quarter.EndDate)
                    {
                        continue;
                    }
                    foreach (var area in Maintenance.SelfDevelopmentAreas)
                    {
                        rv.SelfDevelopment.AddSelfDevelopmentRow(student, area, quarter.ToString(), _rnd.Next(3, 5), "Jekyll");
                    }

                    if (_rnd.NextDouble() > .9)
                    {
                        if (withdraw)
                        {
                            student.DateWithdrawn = quarter.EndDate.AddMonths(-1);
                        }
                        else
                        {
                            student.DateEnrolled = quarter.EndDate.AddMonths(-2);
                        }
                        //if (student.DateEnrolled > DateTime.Today)
                        //    student.DateEnrolled = DateTime.Today.AddDays(-1);
                        break;
                    }
                }
            }
            return(rv);
        }