public async Task <ActionResult <TeacherStatistics> > GetTeacherStatistics(Guid teacherId, int timeStamps) { double averageMark; try { averageMark = await m_analyzer.GetTeacherAverageMark(teacherId); } catch (InvalidDataException) { averageMark = 0; } List <DateMark> averageMarks; try { averageMarks = await m_analyzer.GetTeacherAverageMarks(teacherId, timeStamps); } catch (InvalidDataException) { averageMarks = new List <DateMark>(); } double levelOfDifficulty; try { levelOfDifficulty = await m_analyzer.GetTeacherAverageLevelOfDifficulty(teacherId); } catch (InvalidDataException) { levelOfDifficulty = 0; } double wouldTakeAgainRatio; try { wouldTakeAgainRatio = await m_analyzer.GetTeacherWouldTakeTeacherAgainRatio(teacherId); } catch (InvalidDataException) { wouldTakeAgainRatio = 0; } var teacherStatistic = new TeacherStatistics { Id = Guid.NewGuid(), TeacherId = teacherId, AverageMark = averageMark, AverageMarks = averageMarks, AverageLevelOfDifficulty = levelOfDifficulty, WouldTakeAgainRatio = wouldTakeAgainRatio }; return(teacherStatistic); }
public ActionResult PartTimeFacultyCourseLoadReportExcel() { var teacherStatistics = (from t in db.Teachers join c in db.Courses on t.Id equals c.TeacherId into cGroup where t.Status == "Part Time" orderby t.Designation descending select new { TeacherInfo = t, CourseInfo = from cg in cGroup orderby cg.Code ascending select cg }).ToList(); List <TeacherStatistics> teacherStatisticses = new List <TeacherStatistics>(); int count = 0; foreach (var teacherStatistic in teacherStatistics) { TeacherStatistics aTeacherStatistics = new TeacherStatistics(); aTeacherStatistics.Name = teacherStatistic.TeacherInfo.Name; aTeacherStatistics.Designation = teacherStatistic.TeacherInfo.Designation; aTeacherStatistics.NumberOfCourse = teacherStatistic.TeacherInfo.NumberOfCourse; count = 0; foreach (var courseInfo in teacherStatistic.CourseInfo) { if (count != 0) { aTeacherStatistics.Courses += ", "; } aTeacherStatistics.Courses += courseInfo.Code; aTeacherStatistics.Courses += "("; aTeacherStatistics.Courses += courseInfo.Section; aTeacherStatistics.Courses += ")"; count++; } teacherStatisticses.Add(aTeacherStatistics); } ExcelPackage excel = new ExcelPackage(); var workSheet = excel.Workbook.Worksheets.Add("Sheet1"); workSheet.Cells[1, 1].LoadFromCollection(teacherStatisticses, true); using (var memoryStream = new MemoryStream()) { Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment; filename=PartTimeFaculty.xlsx"); excel.SaveAs(memoryStream); memoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } return(View(teacherStatisticses)); }
public ActionResult FullTimeFacultyCourseLoadReport() { var document = new Document(PageSize.A3, 100, 100, 50, 50); var output = new MemoryStream(); var writer = PdfWriter.GetInstance(document, output); document.Open(); var titleFont = FontFactory.GetFont("Arial", 18, Font.BOLD); var subTitleFont = FontFactory.GetFont("Arial", 14, Font.BOLD); var boldTableFont = FontFactory.GetFont("Arial", 12, Font.BOLD); var endingMessageFont = FontFactory.GetFont("Arial", 10, Font.ITALIC); var bodyFont = FontFactory.GetFont("Arial", 12, Font.NORMAL); document.Add(new Paragraph("Full Time Faculty Course Load ", titleFont)); document.Add(new Paragraph("Fall 2016 ", subTitleFont)); document.Add(new Paragraph("Department of Computer Science and Engineering ", subTitleFont)); document.Add(Chunk.NEWLINE); var teacherTable = new PdfPTable(4); teacherTable.WidthPercentage = 100F; teacherTable.SpacingBefore = 0; teacherTable.SpacingAfter = 0; int[] widths = new int[] { 8, 7, 5, 16 }; teacherTable.SetWidths(widths); teacherTable.AddCell(new Phrase("Name", boldTableFont)); teacherTable.AddCell(new Phrase("Designation", boldTableFont)); teacherTable.AddCell(new Phrase("No of Course", boldTableFont)); teacherTable.AddCell(new Phrase("Courses", boldTableFont)); var teacherStatistics = (from t in db.Teachers join c in db.Courses on t.Id equals c.TeacherId into cGroup where t.Status == "Full Time" orderby t.Designation descending select new { TeacherInfo = t, CourseInfo = from cg in cGroup orderby cg.Code ascending select cg }).ToList(); List <TeacherStatistics> teacherStatisticses = new List <TeacherStatistics>(); int count = 0; foreach (var teacherStatistic in teacherStatistics) { TeacherStatistics aTeacherStatistics = new TeacherStatistics(); aTeacherStatistics.Name = teacherStatistic.TeacherInfo.Name; aTeacherStatistics.Designation = teacherStatistic.TeacherInfo.Designation; aTeacherStatistics.NumberOfCourse = teacherStatistic.TeacherInfo.NumberOfCourse; count = 0; foreach (var courseInfo in teacherStatistic.CourseInfo) { if (count != 0) { aTeacherStatistics.Courses += ", "; } aTeacherStatistics.Courses += courseInfo.Code; aTeacherStatistics.Courses += "("; aTeacherStatistics.Courses += courseInfo.Section; aTeacherStatistics.Courses += ")"; count++; } teacherTable.AddCell(aTeacherStatistics.Name); teacherTable.AddCell(aTeacherStatistics.Designation); teacherTable.AddCell(aTeacherStatistics.NumberOfCourse.ToString()); teacherTable.AddCell(aTeacherStatistics.Courses); teacherStatisticses.Add(aTeacherStatistics); } document.Add(teacherTable); document.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=FullTimeFaculty.pdf"); Response.BinaryWrite(output.ToArray()); return(View(teacherStatisticses)); }
// GET: /Teacher/ public ActionResult FullTimeFacultyCourseLoad() { if (Session["user_email"] == null) { return(RedirectToAction("Login", "UserAccount")); } int userAccountId = (int)Session["user_id"]; //new append var teacherStatistics = (from t in db.Teachers join c in db.Courses on t.Id equals c.TeacherId into cGroup where t.Status == "Full Time" && t.UserAccountId == userAccountId //new append orderby t.Designation descending select new { TeacherInfo = t, CourseInfo = from cg in cGroup where cg.UserAccountId == userAccountId //new append orderby cg.Code ascending select cg }).ToList(); List <TeacherStatistics> teacherStatisticses = new List <TeacherStatistics>(); int count = 0; foreach (var teacherStatistic in teacherStatistics) { TeacherStatistics aTeacherStatistics = new TeacherStatistics(); aTeacherStatistics.Name = teacherStatistic.TeacherInfo.Name; aTeacherStatistics.Designation = teacherStatistic.TeacherInfo.Designation; aTeacherStatistics.NumberOfCourse = teacherStatistic.TeacherInfo.NumberOfCourse; count = 0; foreach (var courseInfo in teacherStatistic.CourseInfo) { if (count != 0) { aTeacherStatistics.Courses += ", "; } aTeacherStatistics.Courses += courseInfo.Code; aTeacherStatistics.Courses += "("; aTeacherStatistics.Courses += courseInfo.Section; aTeacherStatistics.Courses += ")"; count++; } teacherStatisticses.Add(aTeacherStatistics); } List <TeacherStatistics> teacherStatisticsesWithDesignationOrder = new List <TeacherStatistics>(); List <Designation> designations = db.Designations.OrderBy(x => x.Id).ToList(); foreach (Designation designation in designations) { foreach (var aTeacher in teacherStatisticses) { if (designation.Name == aTeacher.Designation) { teacherStatisticsesWithDesignationOrder.Add(aTeacher); } } } return(View(teacherStatisticsesWithDesignationOrder)); }
private List <CircleDataViewModel> LoadStatisticsByType(string username, Types role) { BussinesLayer bl = new BussinesLayer(new FinalDB()); List <CircleDataViewModel> circleList = new List <CircleDataViewModel>(); if (role == Types.Student) { StudentStatistics statistics = bl.GetStudentStatistics(username); circleList.Add(new CircleDataViewModel() { ID = "quadrant1", Title = "בקשות שאושרו מתוך סך הבקשות", Value = this.GetPercent(statistics.Requests), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant2", Title = "פגישות שאישרתי מתוך סך הפגישות", Value = this.GetPercent(statistics.Sessions), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant3", Title = "בקשות שהוגשו מאותו הקורס", Value = this.GetPercent(statistics.CourseRequets), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant4", Title = "ניצול השעות מתוך השעות המאושרות", Value = this.GetPercent(statistics.ApprovalHours), MaxValue = 100 }); } else if (role == Types.Teacher) { TeacherStatistics statistics = bl.GetTeacherStatistics(username); circleList.Add(new CircleDataViewModel() { ID = "quadrant1", Title = "אחוז החניכים שלימדתי מתוך הסך", Value = this.GetPercent(statistics.NumOfTeachedStudents), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant2", Title = "אחוז השעות הלימוד מתוך סך הפגישות", Value = this.GetPercent(statistics.NumOfHours), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant3", Title = "אחוז הפגישות שאושרו על-ידי חניכים", Value = this.GetPercent(statistics.NumOfApprovalSessions), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant4", Title = "אחוז הפגישות שהן שיעור יחיד מתוך הסך ", Value = this.GetPercent(statistics.NumOfSingleRefunds), MaxValue = 100 }); } else if (role == Types.Admin) { ManagerStatistics statistics = bl.GetManagerStatistics(username); circleList.Add(new CircleDataViewModel() { ID = "quadrant1", Title = "אחוז הבקשות שאישרתי מתוך סך הבקשות", Value = this.GetPercent(statistics.NumOfApprovalRequets), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant2", Title = "אחוז ההודעות ששלחתי מתוך ההודעות שקיבלתי", Value = this.GetPercent(statistics.NumOfMessages), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant3", Title = "אחוז החניכים מתוך כלל המשתמשים", Value = this.GetPercent(statistics.NumOfStudents), MaxValue = 100 }); circleList.Add(new CircleDataViewModel() { ID = "quadrant4", Title = "אחוז הבקשות שהן לשיעורי אנגלית מתוך כלל הבקשות", Value = this.GetPercent(statistics.NumOfENRequets), MaxValue = 100 }); } else { return(new List <CircleDataViewModel>()); } return(circleList); }