Пример #1
0
        // GET: SemesterReport
        /// <summary>
        /// Returns an individual semester report for a student
        /// </summary>
        /// <param name="id">Student ID to generate Report for</param>
        /// <returns>Report data</returns>
        public ActionResult SemesterReport(string id = null)
        {
            var CurrentId = DataSourceBackend.Instance.IdentityBackend.GetCurrentStudentID(HttpContext);

            if (DataSourceBackend.Instance.IdentityBackend.BlockExecptForRole(CurrentId, UserRoleEnum.TeacherUser))
            {
                return(RedirectToAction("Login", "Admin"));
            }

            var myStudent = DataSourceBackend.Instance.StudentBackend.Read(id);

            if (myStudent == null)
            {
                return(RedirectToAction("Error", "Home"));
            }


            var myReport = new SemesterReportViewModel()
            {
                StudentId          = id,
                SelectedSemesterId = 1
            };

            var myReturn = ReportBackend.Instance.GenerateSemesterReport(myReport);

            return(View(myReturn));
        }
Пример #2
0
        public void Models_SemesterReportViewModel_Default_Instantiate_Should_Pass()
        {
            // Act
            var result = new SemesterReportViewModel();

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Пример #3
0
        public ActionResult SemesterReport([Bind(Include =
                                                     "StudentId," +
                                                     "SelectedSemesterId" +
                                                     "")] SemesterReportViewModel data)
        {
            if (data == null)
            {
                // Send to error page
                return(RedirectToAction("Error", "Home"));
            }

            //generate the report
            var myReturn = ReportBackend.Instance.GenerateSemesterReport(data);

            return(View(myReturn));
        }
Пример #4
0
        public void Controller_Admin_Semester_Report_Post_Data_Is_Null_Should_Return_Error_Page()
        {
            // Arrange
            AdminController         controller = new AdminController();
            SemesterReportViewModel data       = null;

            var context = CreateMoqSetupForCookie();

            controller.ControllerContext = new ControllerContext(context, new RouteData(), controller);

            // Act
            var result = (RedirectToRouteResult)controller.SemesterReport(data);

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }
Пример #5
0
        /// <summary>
        /// Generate Weekly report
        /// </summary>
        /// <param name="report"></param>
        /// <returns></returns>
        public SemesterReportViewModel GenerateSemesterReport(SemesterReportViewModel report)
        {
            //set student
            report.Student = DataSourceBackend.Instance.StudentBackend.Read(report.StudentId);

            //settings
            var settings = SchoolDismissalSettingsBackend.Instance.GetDefault();

            //initialize the drop down list
            report.Semesters = new List <SelectListItem>();

            var s1 = new SelectListItem {
                Value = "1", Text = "Semester 1"
            };

            //add to the select list
            report.Semesters.Add(s1);

            if (report.SelectedSemesterId == 1)
            {
                //set the first and last day of fall semester according to school dismissal settings
                report.DateStart = settings.S1Start;
                report.DateEnd   = settings.S2Start.AddDays(-1);
            }

            var s2 = new SelectListItem {
                Value = "2", Text = "Semester 2"
            };

            //add to the select list
            report.Semesters.Add(s2);

            if (report.SelectedSemesterId == 2)
            {
                //set the first and last day of fall semester according to school dismissal settings
                report.DateStart = settings.S2Start;
                report.DateEnd   = settings.DayLast;
            }

            //Generate report for this semester
            GenerateReportFromStartToEnd(report);

            return(report);
        }
Пример #6
0
        public void Controller_Admin_Semester_Report_Post_Data_Is_Valid_Should_Pass()
        {
            // Arrange
            AdminController controller = new AdminController();
            var             data       = new SemesterReportViewModel()
            {
                StudentId          = DataSourceBackend.Instance.StudentBackend.GetDefault().Id,
                SelectedSemesterId = 2
            };

            var context = CreateMoqSetupForCookie();

            controller.ControllerContext = new ControllerContext(context, new RouteData(), controller);

            // Act
            var result = controller.SemesterReport(data);

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Пример #7
0
        public void Models_SemesterReportViewModel_Get_Set_Check_All_Fields_Should_Pass()
        {
            // Arrange

            // Act
            // Set all the fields for a BaseReportViewModel
            var test = new SemesterReportViewModel
            {
                SelectedSemesterId = 1,
                Semesters          = new List <SelectListItem>()
            };

            var expectedSelectedSemesterId = 1;

            // Assert

            //Check each value
            Assert.AreEqual(test.SelectedSemesterId, expectedSelectedSemesterId, "SelectedSemesterId " + TestContext.TestName);

            Assert.IsNotNull(test.Semesters, "Semesters " + TestContext.TestName);
        }
Пример #8
0
        public ActionResult SemesterReport([Bind(Include =
                                                     "StudentId," +
                                                     "SelectedSemesterId" +
                                                     "")] SemesterReportViewModel data)
        {
            var CurrentId = DataSourceBackend.Instance.IdentityBackend.GetCurrentStudentID(HttpContext);

            if (DataSourceBackend.Instance.IdentityBackend.BlockExecptForRole(CurrentId, UserRoleEnum.TeacherUser))
            {
                return(RedirectToAction("Login", "Admin"));
            }

            if (data == null)
            {
                // Send to error page
                return(RedirectToAction("Error", "Home"));
            }

            //generate the report
            var myReturn = ReportBackend.Instance.GenerateSemesterReport(data);

            return(View(myReturn));
        }
Пример #9
0
        // GET: SemesterReport
        /// <summary>
        /// Returns an individual semester report for a student
        /// </summary>
        /// <param name="id">Student ID to generate Report for</param>
        /// <returns>Report data</returns>
        public ActionResult SemesterReport(string id = null)
        {
            var CurrentId = DataSourceBackend.Instance.IdentityBackend.GetCurrentStudentID(HttpContext);

            // Todo: Remove when identity is fully hooked up
            // Hack, to keep the current system working, while the identity system is slowly hooked up everywhere.  If the user is not logged in, then the passed in user will work, if the user is logged in, then the passed in user is ignored.
            if (string.IsNullOrEmpty(CurrentId))
            {
                CurrentId = id;
            }

            ViewBag.StudentId = CurrentId;  //TODO: Remove this when identity is fully hooked up

            if (DataSourceBackend.Instance.IdentityBackend.BlockExecptForRole(CurrentId, UserRoleEnum.StudentUser))
            {
                return(RedirectToAction("Roster", "Portal"));
            }

            var myStudent = DataSourceBackend.Instance.StudentBackend.Read(CurrentId);

            if (myStudent == null)
            {
                return(RedirectToAction("Error", "Home"));
            }


            var myReport = new SemesterReportViewModel()
            {
                StudentId          = CurrentId,
                SelectedSemesterId = 1
            };

            var myReturn = ReportBackend.Instance.GenerateSemesterReport(myReport);

            return(View(myReturn));
        }
Пример #10
0
        public void Backend_ReportBackend_Generate_Semester_Report_Semester_Id_Is_2_Should_Pass()
        {
            //arrange
            var dateTimeHelper = DateTimeHelper.Instance;

            dateTimeHelper.EnableForced(true);
            dateTimeHelper.SetForced(new DateTime(2018, 10, 20, 0, 0, 0));
            var dateTimeUTCNow = dateTimeHelper.GetDateTimeNowUTC();

            var reportBackend = ReportBackend.Instance;
            var testReport    = new SemesterReportViewModel
            {
                SelectedSemesterId = 2
            };
            var testStudent = DataSourceBackend.Instance.StudentBackend.GetDefault();

            testReport.Student   = testStudent;
            testReport.StudentId = testStudent.Id;

            var dayNow = dateTimeUTCNow.Date;                                                      //today's date

            var thisMonday = dayNow.AddDays(-7 - ((dayNow.DayOfWeek - DayOfWeek.Monday + 7) % 7)); //this Monday's date

            var attendanceMon = new AttendanceModel
            {
                In      = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddHours(9)),
                Out     = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddHours(12)),
                Emotion = EmotionStatusEnum.VeryHappy
            };
            var attendanceTue = new AttendanceModel
            {
                In      = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(1).AddHours(10)),
                Out     = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(1).AddHours(12)),
                Emotion = EmotionStatusEnum.Happy
            };
            var attendanceWed = new AttendanceModel
            {
                In      = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(2).AddHours(10)),
                Out     = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(2).AddHours(12)),
                Emotion = EmotionStatusEnum.Neutral
            };
            var attendanceThu = new AttendanceModel
            {
                In      = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(3).AddHours(10)),
                Out     = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(3).AddHours(12)),
                Emotion = EmotionStatusEnum.Sad
            };
            var attendanceFri = new AttendanceModel
            {
                In      = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(4).AddHours(10)),
                Out     = UTCConversionsBackend.KioskTimeToUtc(thisMonday.AddDays(4).AddHours(12)),
                Emotion = EmotionStatusEnum.VerySad
            };

            testStudent.Attendance.Add(attendanceMon);
            testStudent.Attendance.Add(attendanceTue);
            testStudent.Attendance.Add(attendanceWed);
            testStudent.Attendance.Add(attendanceThu);
            testStudent.Attendance.Add(attendanceFri);

            testReport.DateEnd = dateTimeUTCNow;

            //act
            var result = reportBackend.GenerateSemesterReport(testReport);

            //reset
            DataSourceBackend.Instance.Reset();

            //assert
            Assert.IsNotNull(result, TestContext.TestName);
        }