/// <summary>
        /// Method for select all entities from the database
        /// </summary>
        /// <returns></returns>
        public List <Exam> GetAll()
        {
            List <Exam> exams               = table.ToList();
            List <int>  sessionsIds         = exams.Select(o => o.SessionId).ToList();
            List <int>  teachersIds         = exams.Select(o => o.TeacherId).ToList();
            List <int>  subjectsOfGroupsIds = exams.Select(o => o.SubjectsOfGroupId).ToList();

            List <Session> sessions = dbContext.SessionsRepository
                                      .GetAll()
                                      .Where(o => sessionsIds.Contains(o.Id))
                                      .ToList();

            List <Teacher> teachers = dbContext.TeachersRepository
                                      .GetAll()
                                      .Where(o => teachersIds.Contains(o.Id))
                                      .ToList();

            List <SubjectsOfGroup> subjectsOfGroups = dbContext.SubjectsOfGroupsRepository
                                                      .GetAll()
                                                      .Where(o => subjectsOfGroupsIds.Contains(o.Id))
                                                      .ToList();

            foreach (Exam exam in exams)
            {
                Session         session         = sessions.FirstOrDefault(o => o.Id == exam.SessionId);
                Teacher         teacher         = teachers.FirstOrDefault(o => o.Id == exam.TeacherId);
                SubjectsOfGroup subjectsOfGroup = subjectsOfGroups.FirstOrDefault(o => o.Id == exam.SubjectsOfGroupId);
                exam.Session         = session;
                exam.Teacher         = teacher;
                exam.SubjectsOfGroup = subjectsOfGroup;
            }

            return(exams);
        }
Beispiel #2
0
        /// <summary>
        /// Method for get all of exams from the database
        /// </summary>
        /// <returns></returns>
        public override List <BaseModel> GetAll()
        {
            List <BaseModel> exams = new List <BaseModel>();

            using (SqlConnection connection = new SqlConnection(base.ConnectionString))
            {
                using (var query = new SqlCommand())
                {
                    query.Connection  = connection;
                    query.CommandText = SqlQueriesHelper.FormSelectQuery(typeof(Exam));
                    query.Connection.Open();
                    using (SqlDataReader reader = query.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                exams.Add(new Exam()
                                {
                                    Id      = (int)reader["Id"],
                                    Session = new Session {
                                        Id = (int)reader["SessionId"]
                                    },
                                    ExamDate        = ((DateTime)reader["ExamDate"]).Date,
                                    SubjectsOfGroup = new SubjectsOfGroup {
                                        Id = (int)reader["SubjectsOfGroupId"]
                                    }
                                });
                            }
                        }
                    }
                    query.Connection.Close();
                }
            }

            if (exams.Any())
            {
                foreach (Exam model in exams)
                {
                    Session         session         = (Session)base.DbContext.SessionsRepository.GetById(model.Session.Id);
                    SubjectsOfGroup subjectsOfGroup = (SubjectsOfGroup)base.DbContext.SubjectsOfGroupsRepository.GetById(model.SubjectsOfGroup.Id);
                    model.Session         = session;
                    model.SubjectsOfGroup = subjectsOfGroup;
                }
            }
            return(exams);
        }
Beispiel #3
0
        public void GetAllSubjectOfGroupsTest()
        {
            List <bool>            isEqualList      = new List <bool>();
            List <SubjectsOfGroup> subjectsOfGroups = dbContext.SubjectsOfGroupsRepository.GetAll();

            foreach (var subjectsOfGroup in subjectsOfGroups)
            {
                SubjectsOfGroup obj = subjectsOfGroupsCases.Where(o => o.Id == subjectsOfGroup.Id &&
                                                                  o.GroupId == subjectsOfGroup.GroupId &&
                                                                  o.SubjectId == subjectsOfGroup.SubjectId)
                                      .FirstOrDefault();
                isEqualList.Add(obj == null ? false : true);
            }
            bool isEqualCollections = isEqualList.Contains(false);

            Assert.IsTrue(!isEqualCollections);
        }
Beispiel #4
0
        /// <summary>
        /// Method for get exam by id value from the database
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public override BaseModel GetById(int id)
        {
            Exam exam = null;

            using (SqlConnection connection = new SqlConnection(base.ConnectionString))
            {
                using (var query = new SqlCommand())
                {
                    query.Connection  = connection;
                    query.CommandText = SqlQueriesHelper.FormSelectByIdQuery(typeof(Exam), id);

                    query.Connection.Open();
                    using (SqlDataReader reader = query.ExecuteReader())
                    {
                        if (reader.HasRows && reader.Read())
                        {
                            exam = new Exam()
                            {
                                Id      = (int)reader["Id"],
                                Session = new Session {
                                    Id = (int)reader["SessionId"]
                                },
                                ExamDate        = ((DateTime)reader["ExamDate"]).Date,
                                SubjectsOfGroup = new SubjectsOfGroup {
                                    Id = (int)reader["SubjectsOfGroupId"]
                                }
                            };
                        }
                    }
                    query.Connection.Close();
                }
            }
            if (exam != null)
            {
                Session         session         = (Session)base.DbContext.SessionsRepository.GetById(exam.Session.Id);
                SubjectsOfGroup subjectsOfGroup = (SubjectsOfGroup)base.DbContext.SubjectsOfGroupsRepository.GetById(exam.SubjectsOfGroup.Id);
                exam.Session         = session;
                exam.SubjectsOfGroup = subjectsOfGroup;
            }
            return(exam);
        }
Beispiel #5
0
        public void GetSubjectOfGroupsByIdTest()
        {
            List <bool> isEqualList = new List <bool>();
            List <int>  ids         = new List <int>()
            {
                1, 3, 4
            };

            foreach (int id in ids)
            {
                SubjectsOfGroup subjectsOfGroup = dbContext.SubjectsOfGroupsRepository.GetById(id);
                SubjectsOfGroup obj             = subjectsOfGroupsCases.Where(o => o.Id == subjectsOfGroup.Id &&
                                                                              o.GroupId == subjectsOfGroup.GroupId &&
                                                                              o.SubjectId == subjectsOfGroup.SubjectId)
                                                  .FirstOrDefault();
                isEqualList.Add(obj == null ? false : true);
            }
            bool isEqualCollections = isEqualList.Contains(false);

            Assert.IsTrue(!isEqualCollections);
        }
Beispiel #6
0
        /// <summary>
        /// Method for get subjects of group by id value from the database
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public override BaseModel GetById(int id)
        {
            SubjectsOfGroup subjectsOfGroup = null;

            using (SqlConnection connection = new SqlConnection(base.ConnectionString))
            {
                using (var query = new SqlCommand())
                {
                    query.Connection  = connection;
                    query.CommandText = SqlQueriesHelper.FormSelectByIdQuery(typeof(SubjectsOfGroup), id);

                    query.Connection.Open();
                    using (SqlDataReader reader = query.ExecuteReader())
                    {
                        if (reader.HasRows && reader.Read())
                        {
                            subjectsOfGroup = new SubjectsOfGroup()
                            {
                                Id    = (int)reader["Id"],
                                Group = new Group {
                                    Id = (int)reader["GroupId"]
                                },
                                Subject = new Subject {
                                    Id = (int)reader["SubjectId"]
                                }
                            };
                        }
                    }
                    query.Connection.Close();
                }
            }
            if (subjectsOfGroup != null)
            {
                Group   group   = (Group)base.DbContext.GroupsRepository.GetById(subjectsOfGroup.Group.Id);
                Subject subject = (Subject)base.DbContext.SubjectsRepository.GetById(subjectsOfGroup.Subject.Id);
                subjectsOfGroup.Group   = group;
                subjectsOfGroup.Subject = subject;
            }
            return(subjectsOfGroup);
        }