private IEnumerable <KeyValuePair <string, string> > GetReportLevelFields(MarkingPeriodKey period)
        {
            var thisQuarter = MarkingPeriods.Singleton.Find(period);
            var thisYear    = new MarkingYear(thisQuarter);
            // TODO absence in Demo
            // TODONE need year to date attendance
            // TODO need to show grades for 1-4 when showing 4th quarter
            // TODO need to show not show quarters in drop down for past
            var absentThisQuarter = _student.DaysAttendance(thisQuarter, AttendanceStatus.Absent);
            int absentThisYear    = _student.DaysAttendance(thisYear, AttendanceStatus.Absent);

            var tardyThisQuarter = _student.DaysAttendance(thisQuarter, AttendanceStatus.Tardy);
            int tardyThisYear    = _student.DaysAttendance(thisYear, AttendanceStatus.Tardy);

            return(new[] {
                new KeyValuePair <string, string>(
                    "StudentAddress",
                    _student.AddressLine1 + "\n" + _student.AddressLine2),
                new KeyValuePair <string, string>(
                    "SchoolYear",
                    String.Format("{0:MMM dd, yyyy} - {1:MMM dd, yyyy}", thisYear.StartDate, thisYear.EndDate)),
                new KeyValuePair <string, string>(
                    "SchoolYearAttendance",
                    String.Format("{0} - {1}", thisYear.StartDate.Year, thisYear.EndDate.Year)),
                new KeyValuePair <string, string>(
                    "QTR1",
                    thisQuarter.DaysIn.ToString()),
                new KeyValuePair <string, string>(
                    "YR1",
                    thisYear.DaysIn.ToString()),
                new KeyValuePair <string, string>(
                    "QTR2",
                    absentThisQuarter.ToString()),
                new KeyValuePair <string, string>(
                    "YR2",
                    absentThisYear.ToString()),
                new KeyValuePair <string, string>(
                    "QTR3",
                    tardyThisQuarter.ToString()),
                new KeyValuePair <string, string>(
                    "YR3",
                    tardyThisYear.ToString()),
                new KeyValuePair <string, string>(
                    "MarkingPeriod",
                    period.QuarterString),
                new KeyValuePair <string, string>(
                    "QtrEnding",
                    thisQuarter != null ? thisQuarter.EndDate.ToShortDateString() : "N/A")
            });
        }
Esempio n. 2
0
        private void btnHonorRoll_Click(object sender, RoutedEventArgs e)
        {
            var sfd = new SaveFileDialog();

            sfd.DefaultExt = ".csv";
            sfd.Filter     = "CSV files|*.csv|All Files|*.*";
            if (sfd.ShowDialog() != true)
            {
                return;
            }

            var outs = new List <string>();

            foreach (var mp in MarkingPeriods.Singleton.OrderByDescending(m => m.StartDate))
            {
                //var mp = MarkingPeriod.Current;
                var students = _gradebook.Students.Where(s => s.HonorRoll(mp)).OrderByDescending(s => s.Gpa(mp));
                outs.AddRange(AddHonorRollLines(mp, students));
                if (outs.Count() == 0)
                {
                    continue;
                }

                outs.Insert(0, "=For Quarter=");
                var year = new MarkingYear(mp);

                outs.Add("=For Year To Date=");
                outs.AddRange(AddHonorRollLines(year, students));


                ViewUtils.WriteAndOpen(sfd.FileName, outs);
                //ViewUtils.Mail("", "Honor Roll " + mp + " " + DateTime.Now, string.Join(Environment.NewLine, outs.ToArray()));

                return;
            }
            MessageBox.Show("No honor roll found.");
        }
        private void btnHonorRoll_Click(object sender, RoutedEventArgs e)
        {
            var sfd = new SaveFileDialog();
            sfd.DefaultExt = ".csv";
            sfd.Filter = "CSV files|*.csv|All Files|*.*";
            if (sfd.ShowDialog() != true)
                return;

            var outs = new List<string>();
            foreach (var mp in MarkingPeriods.Singleton.OrderByDescending(m => m.StartDate))
            {
                //var mp = MarkingPeriod.Current;
                var students = _gradebook.Students.Where(s => s.HonorRoll(mp)).OrderByDescending(s => s.Gpa(mp));
                outs.AddRange(AddHonorRollLines(mp, students));
                if (outs.Count() == 0)
                    continue;

                outs.Insert(0, "=For Quarter=");
                var year = new MarkingYear(mp);

                outs.Add("=For Year To Date=");
                outs.AddRange(AddHonorRollLines(year, students));

                ViewUtils.WriteAndOpen(sfd.FileName, outs);
                //ViewUtils.Mail("", "Honor Roll " + mp + " " + DateTime.Now, string.Join(Environment.NewLine, outs.ToArray()));

                return;
            }
            MessageBox.Show("No honor roll found.");
        }