Exemplo n.º 1
0
 public ActionResult ViewLessons(int action = 0, int delete = 0, int addMark = 0, int absent = 0)
 {
     if (delete != 0)
     {
         LessonsDB.DeleteLesson(delete);
         return(RedirectToAction("ViewLessons", "Parent"));
     }
     return(RedirectToAction("ViewLessons", "Parent"));
 }
Exemplo n.º 2
0
 public ActionResult SaveLessonInformation(LessonFullInf lesson, int action = 0, int cancel = 0)
 {
     if (action == 0)
     {
         return(RedirectToAction("ViewLessons", "Teacher"));
     }
     else
     {
         LessonsDB.UpdateLessonInf(lesson.Lesson_ID, lesson.Class_ID, lesson.Teacher_ID, lesson.Subject_ID, lesson.Date);
         return(RedirectToAction("ViewLessons", "Teacher"));
     }
 }
Exemplo n.º 3
0
        public ActionResult EditLesson(int lessonID)
        {
            LessonFullInf lesson  = LessonsDB.GetLessonFullInf(lessonID);
            List <Class>  classes = ClassesDB.GetClasses();

            ViewBag.Classes = classes;
            List <TeacherShortInf> teachers = TeachersDB.GetTeachersShortInf();

            ViewBag.Teachers = teachers;
            List <Subject> subjects = SubjectsDB.GetSubjects();

            ViewBag.Subjects = subjects;
            return(View(lesson));
        }
Exemplo n.º 4
0
        public ActionResult AddMarkForm(int lessonID)
        {
            LessonFullInf lesson  = LessonsDB.GetLessonFullInf(lessonID);
            int           classID = lesson.Class_ID;

            List <Pupil> pupils = PupilsDB.GetPupilsInClass(classID);

            ViewBag.Pupils = pupils;

            List <TypeOfWork> types = TypesOfWorkDB.GetTypesOfWork();

            ViewBag.Types = types;

            ViewData["LessonID"] = lessonID;

            return(View());
        }
Exemplo n.º 5
0
 public ActionResult ViewLessons(int action = 0, int delete = 0, int addMark = 0, int absent = 0)
 {
     if (delete != 0)
     {
         LessonsDB.DeleteLesson(delete);
         return(RedirectToAction("ViewLessons", "Teacher"));
     }
     else if (action != 0)
     {
         return(RedirectToAction("EditLesson", "Teacher", new { lessonID = action }));
     }
     else if (addMark != 0)
     {
         return(RedirectToAction("AddMarkForm", "Teacher", new { lessonID = addMark }));
     }
     else
     {
         return(RedirectToAction("SelectAbsentPupils", "Teacher", new { lessonID = absent }));
     }
 }
Exemplo n.º 6
0
        public ActionResult SelectAbsentPupils(int lessonID)
        {
            LessonFullInf lesson = LessonsDB.GetLessonFullInf(lessonID);

            List <Pupil> pupils = PupilsDB.GetPupilsInClass(lesson.Class_ID);

            TeacherController.classID = lesson.Class_ID;

            ViewBag.Pupils = pupils;

            ViewData["Lesson"] = lesson.Lesson_ID;

            // список ID учеников, которые были ранее отмечены как отсутствующие на данном уроке
            List <int> previosAbsent = LessonsDB.GetAbsentPupils(lessonID);

            ViewBag.AbsentPupils = previosAbsent;

            // удаляем всех отсутствующих отмеченных ранее
            MarksDB.DeleteAbsentPupilsMark(lessonID);

            return(View());
        }
Exemplo n.º 7
0
        public ActionResult ViewLessons()
        {
            List <DateTime> dates = LessonsDB.GetLessonsDates();
            List <List <LessonFullInf> > lessons = new List <List <LessonFullInf> >();
            int lessonsCount = LessonsDB.GetLessonsCount();

            for (int i = 0; i < dates.Count(); i++)
            {
                lessons.Add(LessonsDB.GetLessonsInDate(dates[i]));
            }

            List <Class> classes = ClassesDB.GetClasses();

            List <Subject> subjects = SubjectsDB.GetSubjects();

            ViewBag.Subjects = subjects;
            ViewBag.Classes  = classes;
            ViewBag.Dates    = dates;
            ViewBag.Lessons  = lessons;

            return(View());
        }
Exemplo n.º 8
0
        public ActionResult FilterLessons(int Class_ID, string from, string to)
        {
            StringBuilder exprForDate    = new StringBuilder();
            StringBuilder exprForLessons = new StringBuilder();

            exprForDate.Append("SELECT DISTINCT Lesson_Date FROM Lessons ");
            exprForLessons.Append("Lesson_ID, Lessons.Class_ID, Class_Name, Lessons.Teacher_ID, Name, Surname, Patronymic, Lessons.Subject_ID, Subject_Name, Lesson_Date ");
            exprForLessons.Append("FROM Lessons, Classes, Teachers, Subjects WHERE Classes.Class_ID = Lessons.Class_ID AND ");
            exprForLessons.Append("	  Teachers.Teacher_ID = Lessons.Teacher_ID AND Subjects.Subject_ID = Lessons.Subject_ID ");

            List <DateTime> dates = new List <DateTime>();
            List <List <LessonFullInf> > lessons = new List <List <LessonFullInf> >();

            DateTime fromDate = new DateTime();
            DateTime toDate   = new DateTime();

            try
            {
                fromDate = Convert.ToDateTime(from);
            }
            catch
            {
                from = "00.00.0001";
            }

            try
            {
                toDate = Convert.ToDateTime(to);
            }
            catch
            {
                to = "00.00.0001";
            }

            if (Class_ID != 0 && from != "01.01.0001" && to != "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date >= '{fromDate.ToString("yyyy-MM-dd")}' AND Lesson_Date <= '{toDate.ToString("yyyy-MM-dd")}'");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDateAndClass(dates[i], Class_ID));
                }
                for (int i = 0; i < dates.Count(); i++)
                {
                    if (lessons[i].Count() == 0)
                    {
                        dates.RemoveAt(i);
                        lessons.RemoveAt(i);
                        i--;
                    }
                }
            }
            if (Class_ID != 0 && from == "01.01.0001" && to != "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date <= '{toDate.ToString("yyyy-MM-dd")}'");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDateAndClass(dates[i], Class_ID));
                }
                for (int i = 0; i < dates.Count(); i++)
                {
                    if (lessons[i].Count() == 0)
                    {
                        dates.RemoveAt(i);
                        lessons.RemoveAt(i);
                        i--;
                    }
                }
            }
            if (Class_ID != 0 && from != "01.01.0001" && to == "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date >= '{fromDate.ToString("yyyy-MM-dd")}' ");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDateAndClass(dates[i], Class_ID));
                }
                for (int i = 0; i < dates.Count(); i++)
                {
                    if (lessons[i].Count() == 0)
                    {
                        dates.RemoveAt(i);
                        lessons.RemoveAt(i);
                        i--;
                    }
                }
            }
            if (Class_ID != 0 && from == "01.01.0001" && to == "00.00.0001")
            {
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDateAndClass(dates[i], Class_ID));
                }
                for (int i = 0; i < dates.Count(); i++)
                {
                    if (lessons[i].Count() == 0)
                    {
                        dates.RemoveAt(i);
                        lessons.RemoveAt(i);
                        i--;
                    }
                }
            }
            if (Class_ID == 0 && from != "01.01.0001" && to != "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date >= '{fromDate.ToString("yyyy-MM-dd")}' AND Lesson_Date <= '{toDate.ToString("yyyy-MM-dd")}'");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDate(dates[i]));
                }
            }
            if (Class_ID == 0 && from == "01.01.0001" && to != "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date <= '{toDate.ToString("yyyy-MM-dd")}'");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDate(dates[i]));
                }
            }
            if (Class_ID == 0 && from != "01.01.0001" && to == "00.00.0001")
            {
                exprForDate.Append($"WHERE Lesson_Date >= '{fromDate.ToString("yyyy-MM-dd")}' ");
                dates = LessonsDB.GetFilterDates(exprForDate.ToString());
                for (int i = 0; i < dates.Count(); i++)
                {
                    lessons.Add(LessonsDB.GetLessonsInDate(dates[i]));
                }
            }

            ViewBag.Dates   = dates;
            ViewBag.Lessons = lessons;

            return(PartialView());
        }
Exemplo n.º 9
0
 public ActionResult AddLessonForm(Lesson lesson)
 {
     LessonsDB.AddLesson(lesson.Class_ID, lesson.Teacher_ID, lesson.Subject_ID, lesson.Date);
     return(RedirectToAction("ViewLessons", "Teacher"));
 }
Exemplo n.º 10
0
        public ActionResult MailMerge(string send, List <int> Mail)
        {
            StringBuilder result = new StringBuilder();

            try
            {
                List <Parenthood> parenthoods = new List <Parenthood>();
                if (Mail == null)
                {
                    parenthoods = ParentsDB.GetParenthoods();
                }
                else
                {
                    List <Pupil> pupils = new List <Pupil>();

                    foreach (int c in Mail)
                    {
                        foreach (Pupil p in PupilsDB.GetPupilsInClass(c))
                        {
                            pupils.Add(p);
                        }
                    }

                    foreach (Pupil p in pupils)
                    {
                        foreach (Parenthood parenthood in ParentsDB.GetPupilParenthoods(p.Pupil_ID))
                        {
                            parenthoods.Add(parenthood);
                        }
                    }
                }


                foreach (Parenthood p in parenthoods)
                {
                    StringBuilder message = new StringBuilder();

                    PupilFullInformation pupil          = PupilsDB.GetPupilsFullInformation(p.Pupil_ID);
                    Parent                 parent       = ParentsDB.GetParentInfo(p.Parent_ID);
                    ClassWithManagment     c            = ClassesDB.GetClassFullInf(ClassesDB.GetClassId(pupil.Class));
                    TeacherFullInformation classManager = TeachersDB.GetTeacherFullInformation(c.Teacher_ID);

                    List <Subject> subjects = SubjectsDB.GetPupilSubjects(p.Pupil_ID);

                    List <List <Mark> > marks = new List <List <Mark> >();

                    for (int i = 0; i < subjects.Count; i++)
                    {
                        marks.Add(MarksDB.GetPupilSubjectMark(pupil.Pupil_ID, subjects[i].Subject_ID));
                    }

                    if (DateTime.Now.Hour < 10)
                    {
                        message.AppendLine($"<p>Доброе утро, {parent.Name} {parent.Patronymic}!</p>");
                    }
                    else if (DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 17)
                    {
                        message.AppendLine($"<p>Добрый день, {parent.Name} {parent.Patronymic}!</p>");
                    }
                    else
                    {
                        message.AppendLine($"<p>Добрый вечер, {parent.Name} {parent.Patronymic}!</p>");
                    }

                    if (marks.Count != 0)
                    {
                        message.AppendLine($"<p>Высылаем вам отчет об успеваемости, так как вы подписаны на рассылку.</p>");
                        message.AppendLine("<p>.</p>");

                        message.AppendLine($"<p><b>Ученик(ица)</b>: {pupil.Surname} {pupil.Name} {pupil.Patronymic}.</p>");
                        message.AppendLine($"<p><b>Класс</b>: {pupil.Class}.</p>");

                        DateTime from = LessonsDB.GetClassFirstLesson(ClassesDB.GetClassId(pupil.Class));
                        message.AppendLine($"<p><b>Оценки с {from.ToLongDateString()} по {DateTime.Now.ToLongDateString()}: </b></p>");

                        for (int i = 0; i < subjects.Count; i++)
                        {
                            message.Append("<p>" + subjects[i].Subject_Name + ": ");
                            foreach (Mark mark in marks[i])
                            {
                                if (mark.PupilMark != null)
                                {
                                    message.Append($"{mark.PupilMark.ToString()} ");
                                }
                                else
                                {
                                    message.Append("н ");
                                }
                            }
                            message.Append("</p>");
                            message.AppendLine();
                        }

                        message.AppendLine($"<p><b>Количество пропусков</b>: {PupilsDB.GetPupilAbsentCount(pupil.Pupil_ID)}.</p>");

                        List <KeyValuePair <string, double> > weakSubjects   = PupilsDB.GetPupilWeakSubjects(pupil.Pupil_ID);
                        List <KeyValuePair <string, double> > strongSubjects = PupilsDB.GetPupilStrongSubjects(pupil.Pupil_ID);

                        if (weakSubjects.Count != 0)
                        {
                            message.AppendLine("<p><b>Слабые предметы</b>: </p>");
                            foreach (var subject in weakSubjects)
                            {
                                message.AppendLine($"<p>{subject.Key} (средний балл - {subject.Value.ToString()})</p>");
                            }
                            message.AppendLine("Если вы хотите связаться с учителями по проблемным предметам ученика(ицы), то вы можете написать им по следующим <b>электронным адрессам</b>:");
                            foreach (var subject in weakSubjects)
                            {
                                int teacherID = SubjectsDB.GetSubjectTeacher(ClassesDB.GetClassId(pupil.Class), subject.Key);
                                TeacherFullInformation teacher = TeachersDB.GetTeacherFullInformation(teacherID);

                                message.AppendLine($"<p>{subject.Key}: {teacher.Surname} {teacher.Name} {teacher.Patronymic }. Почта: {teacher.Email}</p>");
                            }
                        }
                        else
                        {
                            message.AppendLine("У данного ученика(ицы) нет слабых предметов. Успеваемость на хорошем уровне.");
                        }

                        if (strongSubjects.Count != 0)
                        {
                            message.AppendLine("<p><b>Сильные предметы</b>: </p>");
                            foreach (var subject in strongSubjects)
                            {
                                message.AppendLine($"<p>{subject.Key} (средний балл - {subject.Value.ToString()})</p>");
                            }
                            message.AppendLine("<p>(По данным предметам рекомендуется посетить олимпиады или турниры. Для более подробной информации необходимо связаться с классным руководителем.)</p>");
                            message.AppendLine($"<p><b>Классный руководитель: </b>{classManager.Surname} {classManager.Name} {classManager.Patronymic }. Почта: {classManager.Email}</p>");
                        }
                        else
                        {
                            message.AppendLine("<p>У данного ученика нет сильных предметов.</p>");
                        }

                        DateTime currentDate        = DateTime.Now;
                        int      currentMonth       = currentDate.Month;
                        int      Year               = currentDate.Year;
                        int      allDayCurrentMonth = DateTime.DaysInMonth(Year, currentMonth);
                        DateTime currentBegin       = new DateTime(Year, currentMonth, 1);
                        DateTime currentEnd         = currentBegin.AddMonths(1).AddDays(-1);

                        int      previousMonth       = currentMonth - 1;
                        int      allDayPreviousMonth = DateTime.DaysInMonth(Year, previousMonth);
                        DateTime previousBegin       = new DateTime(Year, previousMonth, 1);
                        DateTime previousEnd         = previousBegin.AddMonths(1).AddDays(-1);

                        double previousMonthAvgMark = PupilsDB.GetPupilsAvgMarkInMonth(pupil.Pupil_ID, previousBegin, previousEnd);
                        double currentMonthAvgMark  = PupilsDB.GetPupilsAvgMarkInMonth(pupil.Pupil_ID, currentBegin, currentEnd);

                        int change = Convert.ToInt32(((currentMonthAvgMark - previousMonthAvgMark) / previousMonthAvgMark) * 100);

                        message.AppendLine("<p><b>Анализ успеваемости:</b></p>");
                        if (change >= 0)
                        {
                            message.AppendLine($"<p>По сравнению с прошлым месяцем успеваесмость выросла на {change}%. Продолжайте в том же духе!</p>");
                        }
                        else
                        {
                            message.AppendLine($"<p>По сравнению с прошлым месяцем успеваесмость упала на {change}%. Стоит больше внимания уделить учебе!</p>");
                        }

                        for (int i = 0; i < subjects.Count; i++)
                        {
                            message.Append("<p> Предположительная оценка в семестре по " + subjects[i].Subject_Name + ": " + Convert.ToUInt32(PupilsDB.GetPupilsSubjectAvgMark(pupil.Pupil_ID, subjects[i].Subject_ID)) + " ");
                            message.Append("</p>");
                            message.AppendLine();
                        }
                    }
                    else
                    {
                        message.AppendLine("<p>.</p>");
                        message.AppendLine("<p>У данного ученика(ицы) нет оценок, поэтому мы не можем сформировать отчет. Возможно, Вам стоит связаться с классным руководителем по электронной почте.</p>");
                        message.AppendLine($"<p><b>Классный руководитель: </b>{classManager.Surname} {classManager.Name} {classManager.Patronymic }. Почта: {classManager.Email}</p>");
                    }
                    message.AppendLine("<p>.</p>");
                    message.AppendLine("<p>С уважением, администрация школы!</p>");

                    EmailService emailService = new EmailService();
                    emailService.SendEmailAsync(parent.Email, $"Отчет об успеваемости {pupil.Surname} {pupil.Name[0]}. {pupil.Patronymic[0]}.", message.ToString());
                }

                result.AppendLine("Рассылка прошла успешно!");
            }
            catch
            {
                result.AppendLine("<h3> К сожалению, при рассылке проиошла ошибка. Возможно, отсутствует подключение к интернету. Попробуйте позжу! </h3>");
            }

            ViewBag.Message = result.ToString();

            return(View("~/Views/Some/Result.cshtml"));
        }