public ReportCardPage()
        {
            InitializeComponent();

            _reportCardViewModel = new ReportCardViewModel(Navigation);

            BindingContext = _reportCardViewModel;
        }
Example #2
0
        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));
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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;
        }