Exemplo n.º 1
0
        public async Task <ActionResult> Delete(string id)
        {
            AppUser user = await UserManager.FindByIdAsync(id);

            using (var appContext = new TimetableEntities())
            {
                List <Mark> delMarks = appContext.Mark.Where(a => a.student_id == user.Id).ToList();
                if (delMarks.Count != 0)
                {
                    foreach (var tmp in delMarks)
                    {
                        appContext.Entry(tmp).State = System.Data.Entity.EntityState.Deleted;
                    }
                    appContext.SaveChanges();
                }
            }
            if (user != null)
            {
                IdentityResult result = await UserManager.DeleteAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View("Error", result.Errors));
                }
            }
            else
            {
                return(View("Error", new string[] { "Пользователь не найден" }));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> EditClass(string id)
        {
            Class tmp_class = new Class();

            using (var appContext = new TimetableEntities())
            {
                tmp_class = appContext.Class.FirstOrDefault(d => d.id == id);
            }

            if (tmp_class != null)
            {
                AppRole role = await RoleManager.FindByNameAsync("Преподаватель");

                string[] memberIDs = role.Users.Select(x => x.UserId).ToArray();

                IEnumerable <AppUser> members
                    = UserManager.Users.Where(x => memberIDs.Any(y => y == x.Id));

                SelectList teachers;
                teachers = new SelectList(members, "Id", "UserName");
                if (teachers != null)
                {
                    ViewBag.Teachers = teachers;
                    return(View(tmp_class));
                }
                else
                {
                    return(RedirectToAction("Class"));
                }
            }
            else
            {
                return(RedirectToAction("Class"));
            }
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Class()
        {
            List <Class> classes = new List <Class>();

            using (var appContext = new TimetableEntities())
            {
                classes = appContext.Class.ToList();
            }

            List <ClassViewModel> classViewModels = new List <ClassViewModel>();

            foreach (var a in classes)
            {
                ClassViewModel tmp = new ClassViewModel();
                tmp.class_id = a.id;
                AppUser user = await UserManager.FindByIdAsync(a.teacher_id);

                if (user != null)
                {
                    tmp.teacher = user;
                }
                classViewModels.Add(tmp);
            }
            return(View(classViewModels));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> EditClass(Class model)
        {
            using (var appContext = new TimetableEntities())
            {
                appContext.Entry(model).State = System.Data.Entity.EntityState.Modified;
                appContext.SaveChanges();
            }

            return(RedirectToAction("Class"));
        }
Exemplo n.º 5
0
        public ActionResult Create()
        {
            SelectList classes;
            var        appContext = new TimetableEntities();


            classes = new SelectList(appContext.Class, "id", "id");

            ViewBag.Classes = classes;
            return(View());
        }
Exemplo n.º 6
0
        public async Task <ActionResult> CreateSchedule(Schedule model)
        {
            string classId = model.class_id;

            using (var appContext = new TimetableEntities())
            {
                appContext.Schedule.Add(model);
                await appContext.SaveChangesAsync();
            }

            return(RedirectToAction("Timetable"));
        }
Exemplo n.º 7
0
 public Database()
 {
     tEntity          = new TimetableEntities();
     this.ListClasses = new List <Class>();
     this.ListPeriods = new List <Period>();
     this.ListDays    = new List <Day>();
     this.ListMapClassDivSubjectTeachers = new List <MapClassDivSubTeacher>();
     AddClasses();
     AddPeriods();
     AddDays();
     AddMapClassDivSubjectTeachers();
 }
Exemplo n.º 8
0
        public async Task <ActionResult> DeleteMark(int markId, DateTime date, int scheduleId)
        {
            using (var appContext = new TimetableEntities())
            {
                var del = appContext.Mark.FirstOrDefault(d => d.id == markId);
                if (del != null)
                {
                    appContext.Entry(del).State = System.Data.Entity.EntityState.Deleted;
                    appContext.SaveChanges();
                }
            }

            return(RedirectToAction("ClassJournal", new { scheduleId = scheduleId, date = date.ToString(new CultureInfo("en-US")) }));
        }
Exemplo n.º 9
0
        public async Task <ActionResult> CreateClass(CreateClassModel model)
        {
            Class tmp_class = new Class();

            tmp_class.id         = "";
            tmp_class.id        += model.grade + model.letter;
            tmp_class.teacher_id = model.teacher;
            using (var appContext = new TimetableEntities())
            {
                appContext.Class.Add(tmp_class);
                await appContext.SaveChangesAsync();
            }

            return(RedirectToAction("Class"));
        }
Exemplo n.º 10
0
        public async Task <PartialViewResult> JournalTimetable(string date)
        {
            string  searchDayOfTheWeek;
            string  currentUserName = User.Identity.Name;
            AppUser currentUser     = await UserManager.FindByNameAsync(currentUserName);

            JournalViewModel journal = new JournalViewModel();

            journal.date = DateTime.Parse(date, CultureInfo.CreateSpecificCulture("ru-RU"));
            string dayOfWeek = journal.date.DayOfWeek.ToString();

            switch (dayOfWeek)
            {
            case "Monday": searchDayOfTheWeek = "пн"; break;

            case "Tuesday": searchDayOfTheWeek = "вт"; break;

            case "Wednesday": searchDayOfTheWeek = "ср"; break;

            case "Thursday": searchDayOfTheWeek = "пт"; break;

            case "Friday": searchDayOfTheWeek = "сб"; break;

            default: searchDayOfTheWeek = "выходной"; break;
            }

            if (searchDayOfTheWeek == "выходной")
            {
                return(PartialView("ErrorDateInput"));
            }

            using (var appContext = new TimetableEntities())
            {
                List <Schedule> searchedTimetable = appContext.Schedule.Where(a => a.teacher_id == currentUser.Id).OrderBy(a => a.begin_time).ToList();
                foreach (var tmp in searchedTimetable)
                {
                    if (tmp.day_of_week.Replace(" ", "") == searchDayOfTheWeek)
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        journal.lessons.Add(lessonViewModel);
                    }
                }
            }

            return(PartialView(journal));
        }
Exemplo n.º 11
0
        public async Task <ActionResult> AddAbsence(string studentId, DateTime date, int scheduleId)
        {
            Mark mark1 = new Mark();

            mark1.mark1       = "н";
            mark1.student_id  = studentId;
            mark1.date        = date;
            mark1.schedule_id = scheduleId;
            using (var appContext = new TimetableEntities())
            {
                appContext.Mark.Add(mark1);
                await appContext.SaveChangesAsync();
            }

            return(RedirectToAction("ClassJournal", new { scheduleId = scheduleId, date = date.ToString(new CultureInfo("en-US")) }));
        }
Exemplo n.º 12
0
        public async Task <PartialViewResult> DiarySearchResult(string firstDate, string secondDate)
        {
            string  currentUserName = User.Identity.Name;
            AppUser currentUser     = await UserManager.FindByNameAsync(currentUserName);

            DateTime d1 = DateTime.Parse(firstDate, CultureInfo.CreateSpecificCulture("en-US"));
            DateTime d2 = DateTime.Parse(secondDate, CultureInfo.CreateSpecificCulture("en-US"));

            if (d1 > d2)
            {
                return(PartialView("ErrorDateInput"));
            }

            else
            {
                List <Mark>    marks;
                DiaryViewModel diary;
                using (var appContext = new TimetableEntities())
                {
                    diary = new DiaryViewModel();
                    marks = appContext.Mark.Where(a => a.date >= d1 && a.date <= d2).Where(a => a.student_id == currentUser.Id).ToList();
                    if (marks.Count == 0)
                    {
                        return(PartialView("EmptyDate"));
                    }

                    else
                    {
                        foreach (var tmp in marks)
                        {
                            MarkViewModel mark = new MarkViewModel();
                            mark.mark = tmp;
                            Schedule schedule = appContext.Schedule.FirstOrDefault(a => a.id == mark.scheduleId);
                            mark.teacher = await UserManager.FindByIdAsync(schedule.teacher_id);

                            mark.date = tmp.date;
                            Subject sbj = appContext.Subject.FirstOrDefault(a => a.id == schedule.subject_id);
                            mark.subject = sbj.name;
                            diary.diary.Add(mark);
                        }
                        return(PartialView(diary));
                    }
                }
            }
        }
Exemplo n.º 13
0
        public async Task <ActionResult> Edit(string id)
        {
            SelectList classes;
            var        appContext = new TimetableEntities();


            classes = new SelectList(appContext.Class, "id", "id");

            ViewBag.Classes = classes;

            AppUser user = await UserManager.FindByIdAsync(id);

            if (user != null)
            {
                return(View(user));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Exemplo n.º 14
0
        public ActionResult ClassJournal(int scheduleId, string date)
        {
            List <MarkViewModel> classJournal = new List <MarkViewModel>();

            using (var appContext = new TimetableEntities())
            {
                DateTime       d        = DateTime.Parse(date, CultureInfo.CreateSpecificCulture("en-US"));
                Schedule       schedule = appContext.Schedule.FirstOrDefault(a => a.id == scheduleId);
                List <AppUser> students = UserManager.Users.Where(a => a.classId == schedule.class_id).ToList();
                foreach (var a in students)
                {
                    MarkViewModel studentMark = new MarkViewModel();
                    studentMark.student    = a;
                    studentMark.mark       = appContext.Mark.Where(tmp => tmp.date == d).Where(tmp => tmp.student_id == a.Id).FirstOrDefault(tmp => tmp.schedule_id == scheduleId);
                    studentMark.date       = d;
                    studentMark.scheduleId = scheduleId;
                    classJournal.Add(studentMark);
                }
            }
            return(View(classJournal));
        }
Exemplo n.º 15
0
        public async Task <ActionResult> DeleteSchedule(int scheduleId)
        {
            using (var appContext = new TimetableEntities())
            {
                List <Mark> delMarks = appContext.Mark.Where(a => a.schedule_id == scheduleId).ToList();
                if (delMarks.Count != 0)
                {
                    foreach (var tmp in delMarks)
                    {
                        appContext.Entry(tmp).State = System.Data.Entity.EntityState.Deleted;
                    }
                    appContext.SaveChanges();
                }

                var del = appContext.Schedule.FirstOrDefault(d => d.id == scheduleId);
                if (del != null)
                {
                    appContext.Entry(del).State = System.Data.Entity.EntityState.Deleted;
                    appContext.SaveChanges();
                }
            }
            return(RedirectToAction("Timetable"));
        }
Exemplo n.º 16
0
        public async Task <PartialViewResult> TimetableSearchResult(string id)
        {
            List <Schedule>   schedules;
            ScheduleViewModel timetable = new ScheduleViewModel();

            timetable.classId = id;
            using (var appContext = new TimetableEntities())
            {
                if (appContext.Class.FirstOrDefault(a => a.id.Replace(" ", "") == id) != null)
                {
                    schedules = appContext.Schedule.ToList();
                    List <Schedule> searchedTimetable = schedules.Where(a => a.class_id.Replace(" ", "") == timetable.classId).ToList();


                    foreach (var tmp in searchedTimetable)
                    {
                        if (tmp.day_of_week.Replace(" ", "") == "пн")
                        {
                            LessonViewModel lessonViewModel = new LessonViewModel();
                            lessonViewModel.schedule = tmp;
                            lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                            lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                            timetable.mondayLessons.Add(lessonViewModel);
                        }
                        if (tmp.day_of_week.Replace(" ", "") == "вт")
                        {
                            LessonViewModel lessonViewModel = new LessonViewModel();
                            lessonViewModel.schedule = tmp;
                            lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                            lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                            timetable.tuesdayLessons.Add(lessonViewModel);
                        }
                        if (tmp.day_of_week.Replace(" ", "") == "ср")
                        {
                            LessonViewModel lessonViewModel = new LessonViewModel();
                            lessonViewModel.schedule = tmp;
                            lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                            lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                            timetable.wednesdayLessons.Add(lessonViewModel);
                        }
                        if (tmp.day_of_week.Replace(" ", "") == "чт")
                        {
                            LessonViewModel lessonViewModel = new LessonViewModel();
                            lessonViewModel.schedule = tmp;
                            lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                            lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                            timetable.thursdayLessons.Add(lessonViewModel);
                        }
                        if (tmp.day_of_week.Replace(" ", "") == "пт")
                        {
                            LessonViewModel lessonViewModel = new LessonViewModel();
                            lessonViewModel.schedule = tmp;
                            lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                            lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                            timetable.fridayLessons.Add(lessonViewModel);
                        }
                    }
                    timetable.countDifficulty();
                    return(PartialView(timetable));
                }
                else
                {
                    return(PartialView("TimetableNotFound"));
                }
            }
        }
Exemplo n.º 17
0
        // GET: Student
        public async Task <ActionResult> Index()
        {
            string  currentUserName = User.Identity.Name;
            AppUser currentUser     = await UserManager.FindByNameAsync(currentUserName);

            List <Schedule>   searchedTimetable;
            ScheduleViewModel timetable = new ScheduleViewModel();

            timetable.classId = currentUser.classId;
            using (var appContext = new TimetableEntities())
            {
                searchedTimetable = appContext.Schedule.Where(a => a.class_id == currentUser.classId).OrderBy(a => a.begin_time).ToList();


                foreach (var tmp in searchedTimetable)
                {
                    if (tmp.day_of_week.Replace(" ", "") == "пн")
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                        timetable.mondayLessons.Add(lessonViewModel);
                    }
                    if (tmp.day_of_week.Replace(" ", "") == "вт")
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                        timetable.tuesdayLessons.Add(lessonViewModel);
                    }
                    if (tmp.day_of_week.Replace(" ", "") == "ср")
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                        timetable.wednesdayLessons.Add(lessonViewModel);
                    }
                    if (tmp.day_of_week.Replace(" ", "") == "чт")
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                        timetable.thursdayLessons.Add(lessonViewModel);
                    }
                    if (tmp.day_of_week.Replace(" ", "") == "пт")
                    {
                        LessonViewModel lessonViewModel = new LessonViewModel();
                        lessonViewModel.schedule = tmp;
                        lessonViewModel.subject  = appContext.Subject.FirstOrDefault(a => a.id == tmp.subject_id);
                        lessonViewModel.teacher  = await UserManager.FindByIdAsync(tmp.teacher_id);

                        timetable.fridayLessons.Add(lessonViewModel);
                    }
                }
                return(View(timetable));
            }
        }
Exemplo n.º 18
0
        public async Task <ActionResult> CreateSchedule(string day_of_week, string classId, TimeSpan time)
        {
            var appContext        = new TimetableEntities();
            var searchedTimetable = appContext.Schedule.Where(a => a.class_id == classId).Where(a => a.day_of_week == day_of_week).ToList();

            error = "Невозможно добавить урок. ";

            List <string> availableClassrooms = classrooms;

            AppRole role = await RoleManager.FindByNameAsync("Преподаватель");

            string[] memberIDs = role.Users.Select(x => x.UserId).ToArray();

            List <AppUser> members
                = UserManager.Users.Where(x => memberIDs.Any(y => y == x.Id)).ToList();

            List <Schedule> schedules = appContext.Schedule.Where(a => a.begin_time == time).Where(a => a.day_of_week == day_of_week).ToList();

            if (schedules.Count != 0)
            {
                foreach (var tmp in schedules)
                {
                    members.Remove(members.FirstOrDefault(a => a.Id == tmp.teacher_id));
                    availableClassrooms.Remove(tmp.classroom.Replace(" ", ""));
                }
            }
            if (members.Count == 0)
            {
                error += "Нет свободных преподавателей. ";
            }
            if (classrooms.Count == 0)
            {
                error += "Нет свободных аудиторий. ";
            }

            if (members.Count == 0 || classrooms.Count == 0)
            {
                ModelState.AddModelError("", error);
            }
            else
            {
                SelectList teachers;
                teachers           = new SelectList(members, "Id", "surname");
                ViewBag.Teachers   = teachers;
                ViewBag.Classrooms = new SelectList(availableClassrooms);
            }


            SelectList subjects;


            subjects = new SelectList(appContext.Subject, "id", "name");

            ViewBag.Subjects = subjects;


            Schedule schedule = new Schedule();

            schedule.day_of_week = day_of_week;
            schedule.class_id    = classId;
            schedule.begin_time  = time;
            return(View(schedule));
        }