public ReportCardPage() { InitializeComponent(); _reportCardViewModel = new ReportCardViewModel(Navigation); BindingContext = _reportCardViewModel; }
public ActionResult <ReportCardViewModel> ViewReportCard(ReportCardViewModel reportCardViewModel) { ReportCardViewModel reportCardView = new ReportCardViewModel(); try { reportCardView = _reportCardService.ViewReportCard(reportCardViewModel); } catch (Exception es) { reportCardView._message = es.Message; reportCardView._failure = true; } return(reportCardView); }
// Displays all report cards for one student public async Task <IActionResult> View(int studentId, string returnUrl) { var student = await _studentService.GetStudent(studentId, User.Identity.Name); var model = new ReportCardViewModel() { ReportCards = await _reportCardService.GetReportCards(studentId, User.Identity.Name), Student = student }; ViewBag.returnUrl = returnUrl; if (student == null) { return(BadRequest("Could not access student")); } else { return(View(model)); } }
/// <summary> /// Generate Report Card /// </summary> /// <param name="reportCardViewModel"></param> /// <returns></returns> public async Task <ReportCardViewModel> GenerateReportCard(ReportCardViewModel reportCardViewModel) { ReportCardViewModel reportCardView = new ReportCardViewModel(); try { if (TokenManager.CheckToken(reportCardViewModel._tenantName + reportCardViewModel._userName, reportCardViewModel._token)) { reportCardView = await this.reportCardRepository.GenerateReportCard(reportCardViewModel); } else { reportCardView._failure = true; reportCardView._message = TOKENINVALID; } } catch (Exception es) { reportCardView._failure = true; reportCardView._message = es.Message; } return(reportCardView); }
public ReportCardViewModel ViewReportCard(ReportCardViewModel reportCardViewModel) { ReportCardViewModel reportCardView = new ReportCardViewModel(); try { var teacherComments =new List<String>(); var reportCardData = new List<StudentFinalGrade>(); DateTime? startDate=null; DateTime? endDate=null; int? absencesInDays = 0; if (reportCardViewModel.studentsReportCardViewModelList.Count > 0) { var schoolData = this.context?.SchoolMaster.FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId); reportCardView.SchoolName = schoolData.SchoolName; reportCardView.StreetAddress1 = schoolData.StreetAddress1; reportCardView.StreetAddress2 = schoolData.StreetAddress2; reportCardView.State = schoolData.State; reportCardView.City = schoolData.City; reportCardView.District = schoolData.District; reportCardView.Zip = schoolData.Zip; foreach (var student in reportCardViewModel.studentsReportCardViewModelList) { var StudentsReportCard = new StudentsReportCardViewModel(); var studentData = this.context?.StudentMaster.Include(x => x.StudentEnrollment).FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.StudentId == student.StudentId); StudentsReportCard.StudentId = studentData.StudentId; StudentsReportCard.StudentInternalId = studentData.StudentInternalId; StudentsReportCard.FirstGivenName = studentData.FirstGivenName; StudentsReportCard.MiddleName = studentData.MiddleName; StudentsReportCard.LastFamilyName = studentData.LastFamilyName; StudentsReportCard.AlternateId = studentData.AlternateId; StudentsReportCard.GradeTitle = studentData.StudentEnrollment.Where(x => x.IsActive == true).Select(s => s.GradeLevelTitle).FirstOrDefault(); var markingPeriodsData = reportCardViewModel.MarkingPeriods.Split(","); foreach (var markingPeriod in markingPeriodsData) { var ReportCardMarkingPeriod = new ReportCardMarkingPeriodsDetails(); int? QtrMarkingPeriodId = null; int? SmstrMarkingPeriodId = null; int? YrMarkingPeriodId = null; if (markingPeriod != null) { var markingPeriodid = markingPeriod.Split("_", StringSplitOptions.RemoveEmptyEntries); if (markingPeriodid.First() == "2") { QtrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1)); var qtrData = this.context?.Quarters.FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.MarkingPeriodId == QtrMarkingPeriodId && x.AcademicYear == reportCardViewModel.AcademicYear); ReportCardMarkingPeriod.MarkingPeriod = qtrData.Title; startDate = qtrData.StartDate; endDate = qtrData.EndDate; } if (markingPeriodid.First() == "1") { SmstrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1)); var smstrData = this.context?.Semesters.FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.MarkingPeriodId == SmstrMarkingPeriodId && x.AcademicYear == reportCardViewModel.AcademicYear); ReportCardMarkingPeriod.MarkingPeriod = smstrData.Title; startDate = smstrData.StartDate; endDate = smstrData.EndDate; } if (markingPeriodid.First() == "0") { YrMarkingPeriodId = Int32.Parse(markingPeriodid.ElementAt(1)); var yrData = this.context?.SchoolYears.FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.MarkingPeriodId == YrMarkingPeriodId && x.AcademicYear == reportCardViewModel.AcademicYear); ReportCardMarkingPeriod.MarkingPeriod = yrData.Title; startDate = yrData.StartDate; endDate = yrData.EndDate; } var studentAttendanceData = this.context?.StudentAttendance.Include(x => x.AttendanceCodeNavigation).Where(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.StudentId == student.StudentId && x.AttendanceDate >= startDate && x.AttendanceDate <= endDate).ToList(); if (studentAttendanceData.Count > 0) { int? absentData = studentAttendanceData.Where(x => x.AttendanceCodeNavigation.StateCode.ToLower() == "absent").Count(); int? excusedabsentData = studentAttendanceData.Where(x => x.AttendanceCodeNavigation.StateCode.ToLower() == "excusedabsent").Count(); var prasentData = studentAttendanceData.Where(x => x.AttendanceCodeNavigation.StateCode.ToLower() == "prasent"); ReportCardMarkingPeriod.Absences = reportCardViewModel.DailyAbsencesThisMarkingPeriod == true ? absentData : null; ReportCardMarkingPeriod.ExcusedAbsences = excusedabsentData; absencesInDays += absentData + ReportCardMarkingPeriod.ExcusedAbsences; } reportCardData = this.context?.StudentFinalGrade.Include(x => x.StudentFinalGradeComments).Where(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.StudentId == student.StudentId && x.AcademicYear == reportCardViewModel.AcademicYear && ((x.YrMarkingPeriodId != null && x.YrMarkingPeriodId == YrMarkingPeriodId) || (x.SmstrMarkingPeriodId != null && x.SmstrMarkingPeriodId == SmstrMarkingPeriodId) || (x.QtrMarkingPeriodId != null && x.QtrMarkingPeriodId == QtrMarkingPeriodId))).ToList(); if (reportCardData.Count > 0) { foreach (var reportCard in reportCardData) { var ReportCard = new ReportCardDetails(); var CourseSectionData = this.context?.CourseSection.Include(x => x.StaffCoursesectionSchedule).ThenInclude(x => x.StaffMaster).FirstOrDefault(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId && x.CourseSectionId == reportCard.CourseSectionId && x.CourseId == reportCard.CourseId); ReportCard.CourseSectionName = CourseSectionData.CourseSectionName; ReportCard.StaffName = reportCardViewModel.TeacherName == true ? CourseSectionData.StaffCoursesectionSchedule.FirstOrDefault().StaffMaster.FirstGivenName + CourseSectionData.StaffCoursesectionSchedule.FirstOrDefault().StaffMaster.MiddleName + CourseSectionData.StaffCoursesectionSchedule.FirstOrDefault().StaffMaster.LastFamilyName : null; ReportCard.PercentMarks = reportCardViewModel.Parcentage == true ? reportCard.PercentMarks : null; ReportCard.GradeObtained = reportCard.GradeObtained; // ReportCard.GPA = var comments = reportCard.StudentFinalGradeComments.Select(x => x.CourseCommentId).ToList(); ReportCard.Comments= string.Join(",", comments.Select(x => x.ToString()).ToArray()); if(reportCard.TeacherComment!=null) { teacherComments.Add(reportCard.TeacherComment); int? index = teacherComments.ToList().Count(); ReportCard.TeacherComments = index.ToString(); } ReportCardMarkingPeriod.reportCardDetails.Add(ReportCard); } } StudentsReportCard.reportCardMarkingPeriodsDetails.Add(ReportCardMarkingPeriod); } //StudentsReportCard.YearToDateAttendencePercent= StudentsReportCard.YearToDateAbsencesInDays = reportCardViewModel.YearToDateDailyAbsences == true ? absencesInDays : null; reportCardView.studentsReportCardViewModelList.Add(StudentsReportCard); } } reportCardView.teacherCommentList = teacherComments; var courseCommentCategoryData = this.context?.CourseCommentCategory.Where(x => x.TenantId == reportCardViewModel.TenantId && x.SchoolId == reportCardViewModel.SchoolId).ToList(); if (courseCommentCategoryData.Count > 0) { courseCommentCategoryData.ToList().ForEach(x => x.StudentFinalGradeComments = null); reportCardView.courseCommentCategories = courseCommentCategoryData; } } else { reportCardView._failure = true; reportCardView._message = "Select Student Please"; } } catch (Exception es) { reportCardView._failure = true; reportCardView._message = es.Message; } return reportCardView; }