Example #1
0
        public bool AddLessons(ClassGroupDTO data)
        {
            try
            {
                LoginController.checkOnAccess(this.Request.Headers);
            }
            catch (Exception ex)
            {
                throw ex;
            };

            var db = new DBModel();

            try
            {
                foreach (var id in data.lessonIDs)
                {
                    var query = from lc in db.LessonsToClasses
                                where lc.ClassId == data.Id && lc.LessonId == id
                                select lc;

                    query.First().IsActive = true;
                }
                ;

                db.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            };
        }
Example #2
0
        public ClassGroupDTO LoadAddLessonsPage(string category, int grade)
        {
            try
            {
                LoginController.checkOnAccess(this.Request.Headers);
            }
            catch (Exception ex)
            {
                throw ex;
            };

            var db = new DBModel();

            try
            {
                ClassGroupDTO classGroup = new ClassGroupDTO();
                classGroup.lessons = new List <LessonDTO>();

                classGroup.lessons = (from l in db.Lessons
                                      where l.Category == category && l.Grade == grade
                                      orderby l.SeqNum
                                      select new LessonDTO
                {
                    Id = l.Id,
                    Name = l.Name,
                    Description = l.Description,
                    SeqNum = l.SeqNum
                }).ToList();

                return(classGroup);
            }
            catch (Exception ex)
            {
                throw ex;
            };
        }
Example #3
0
        public bool CreateClass(ClassGroupDTO data)
        {
            try
            {
                LoginController.checkOnAccess(this.Request.Headers);
            }
            catch (Exception ex)
            {
                throw ex;
            };

            var db = new DBModel();

            try
            {
                int schoolId = GetSchoolId(data.TeacherUserName, "teacher");

                //Create new ClassGroup record
                db.ClassGroups.Add(new ClassGroup
                {
                    Category = data.Category,
                    Grade    = data.Grade,
                    SchoolId = schoolId
                });

                db.SaveChanges();

                int classId = (from c in db.ClassGroups
                               where c.Category == data.Category && c.Grade == data.Grade && c.SchoolId == schoolId
                               orderby c.Id descending
                               select c.Id).First();

                //Assign the teacher to the class by creating new Teacher to Class record
                int teacherId = LoginController.GetUserID(data.TeacherUserName, "teacher");
                db.TeachersToClasses.Add(new TeacherToClasses
                {
                    ClassId   = classId,
                    TeacherId = teacherId
                });

                //Get the list of all lessons of the category for the grade
                var query = from l in db.Lessons
                            where l.Category == data.Category && l.Grade == data.Grade
                            select l.Id;

                //Add all the lessons of the category for the grade to the new class group
                foreach (var lessonId in query)
                {
                    bool isActive;

                    if (data.lessonIDs.Exists(x => x == lessonId))
                    {
                        isActive = true;
                    }

                    else
                    {
                        isActive = false;
                    };

                    db.LessonsToClasses.Add(new LessonsToClass
                    {
                        ClassId  = classId,
                        LessonId = lessonId,
                        IsActive = isActive
                    });
                }
                ;

                db.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            };
        }
Example #4
0
        public ClassGroupDTO LoadClassPage(int courseId, string userName)
        {
            try
            {
                LoginController.checkOnAccess(this.Request.Headers);
            }
            catch (Exception ex)
            {
                throw ex;
            };

            var db = new DBModel();

            try
            {
                ClassGroupDTO classGroup = (from c in db.ClassGroups
                                            where c.Id == courseId
                                            select new ClassGroupDTO
                {
                    Category = c.Category,
                    Grade = c.Grade
                }).First();

                classGroup.Teacher = (from tc in db.TeachersToClasses
                                      where tc.ClassId == courseId
                                      join t in db.Teachers on tc.TeacherId equals t.Id
                                      select t.Name).First();

                classGroup.numOfStudents = (from sc in db.StudentsToClasses
                                            where sc.ClassId == courseId
                                            select sc).Count();

                classGroup.message = (from m in db.Messages
                                      where m.ClassId == courseId
                                      select new MessageDTO {
                    Text = m.Text,
                    Date = m.Date
                }).FirstOrDefault();

                classGroup.lessons = new List <LessonDTO>();

                classGroup.lessons = (from lc in db.LessonsToClasses
                                      where lc.ClassId == courseId
                                      join l in db.Lessons on lc.LessonId equals l.Id
                                      orderby l.SeqNum
                                      select new LessonDTO
                {
                    Id = l.Id,
                    Name = l.Name,
                    IsActive = lc.IsActive,
                    Description = l.Description,
                    SeqNum = l.SeqNum
                }).ToList();

                classGroup.ExamExists = (from e in db.Exams
                                         where e.ClassId == courseId
                                         select e).Any();

                string role = (from u in db.Users
                               where u.UserName == userName
                               select u.Role).FirstOrDefault();

                if (role == "student")
                {
                    int studentId = LoginController.GetUserID(userName, "student");

                    foreach (var lesson in classGroup.lessons)
                    {
                        lesson.Result = (from rl in db.ResultInLessons
                                         where rl.StudentId == studentId && rl.LessonId == lesson.Id
                                         group rl by rl.LessonId into lessonRes
                                         select lessonRes.Max(x => x.Result)).FirstOrDefault();

                        if (lesson.Result >= MIN_RES_TO_PASS)
                        {
                            lesson.IsPassed = true;
                        }

                        else
                        {
                            lesson.IsPassed = false;
                        };
                    }
                    ;
                }
                ;

                return(classGroup);
            }
            catch (Exception ex)
            {
                throw ex;
            };
        }