// 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)); }
public void Models_SemesterReportViewModel_Default_Instantiate_Should_Pass() { // Act var result = new SemesterReportViewModel(); // Assert Assert.IsNotNull(result, TestContext.TestName); }
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)); }
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); }
/// <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); }
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); }
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); }
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)); }
// 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)); }
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); }