コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        // 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));
        }
コード例 #5
0
        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);
        }