public List <Option> GetQuestionOptions(int questionID, List <int> optionIDs)
        {
            using (var context = new AssessmentToolContext())
            {
                var question = context.Questions.Where(x => x.ID == questionID).Include(x => x.Options).FirstOrDefault();

                if (question == null)
                {
                    return(null);
                }

                List <Option> Options = new List <Option>();

                foreach (var optionID in optionIDs)
                {
                    var option = question.Options.Where(x => x.ID == optionID).FirstOrDefault();

                    if (option != null)
                    {
                        Options.Add(option);
                    }
                }

                return(Options);
            }
        }
Esempio n. 2
0
        public RolesSearch GetRoles(string searchTerm, int pageNo, int pageSize)
        {
            using (var context = new AssessmentToolContext())
            {
                var search = new RolesSearch();

                if (string.IsNullOrEmpty(searchTerm))
                {
                    search.Roles = context.Roles
                                   .Include(u => u.Users)
                                   .OrderBy(x => x.Name)
                                   .Skip((pageNo - 1) * pageSize)
                                   .Take(pageSize)
                                   .ToList();

                    search.TotalCount = context.Users.Count();
                }
                else
                {
                    search.Roles = context.Roles
                                   .Where(u => u.Name.ToLower().Contains(searchTerm.ToLower()))
                                   .Include(u => u.Users)
                                   .OrderBy(x => x.Name)
                                   .Skip((pageNo - 1) * pageSize)
                                   .Take(pageSize)
                                   .ToList();

                    search.TotalCount = context.Roles
                                        .Where(u => u.Name.ToLower().Contains(searchTerm.ToLower())).Count();
                }

                return(search);
            }
        }
Esempio n. 3
0
        public QuizzesSearch GetQuizzes(string searchTerm, int pageNo, int pageSize)
        {
            using (var context = new AssessmentToolContext())
            {
                var search = new QuizzesSearch();

                if (string.IsNullOrEmpty(searchTerm))
                {
                    search.Quizzes = context.Quizzes
                                     .Include(q => q.Questions)
                                     .OrderByDescending(x => x.ModifiedOn)
                                     .Skip((pageNo - 1) * pageSize)
                                     .Take(pageSize)
                                     .ToList();

                    search.TotalCount = context.Quizzes.Count();
                }
                else
                {
                    search.Quizzes = context.Quizzes
                                     .Where(x => x.Name.ToLower().Contains(searchTerm.ToLower()))
                                     .Include(q => q.Questions)
                                     .OrderByDescending(x => x.ModifiedOn)
                                     .Skip((pageNo - 1) * pageSize)
                                     .Take(pageSize)
                                     .ToList();

                    search.TotalCount = context.Quizzes
                                        .Where(x => x.Name.ToLower().Contains(searchTerm.ToLower())).Count();
                }

                return(search);
            }
        }
Esempio n. 4
0
 public async Task <bool> SaveNewQuiz(Quiz quiz)
 {
     using (var context = new AssessmentToolContext())
     {
         context.Quizzes.Add(quiz);
         return(await context.SaveChangesAsync() > 0);
     }
 }
Esempio n. 5
0
 public List <IdentityRole> GetAllRoles()
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Roles
                .OrderBy(x => x.Name)
                .ToList());
     }
 }
        public async Task <bool> NewAttemptedQuestion(AttemptedQuestion attemptedQuestion)
        {
            using (var context = new AssessmentToolContext())
            {
                context.AttemptedQuestions.Add(attemptedQuestion);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 7
0
        public async Task <bool> NewRole(IdentityRole role)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Roles.Add(role);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 8
0
        public async Task <bool> UpdateQuiz(Quiz quiz)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Entry(quiz).State = System.Data.Entity.EntityState.Modified;

                return(await context.SaveChangesAsync() > 0);
            }
        }
        public async Task <bool> NewStudentQuiz(StudentQuiz studentQuiz)
        {
            using (var context = new AssessmentToolContext())
            {
                context.StudentQuizzes.Add(studentQuiz);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 10
0
 public Image GetImage(int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Images
                .Where(q => q.ID == ID)
                .FirstOrDefault());
     }
 }
Esempio n. 11
0
        public bool SaveNewImage(Image image)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Images.Add(image);

                return(context.SaveChanges() > 0);
            }
        }
        public async Task <bool> SaveNewQuestion(Question question)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Questions.Add(question);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 13
0
 public Quiz GetUserQuiz(string userID, int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Quizzes
                .Where(q => q.OwnerID == userID && q.ID == ID)
                .Include(q => q.Questions)
                .FirstOrDefault());
     }
 }
Esempio n. 14
0
 public Quiz GetQuizForAdmin(int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Quizzes
                .Where(q => q.ID == ID)
                .Include(q => q.Questions)
                .FirstOrDefault());
     }
 }
 public Question GetQuizQuestion(int quizID, int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Questions
                .Where(q => q.QuizID == quizID && q.ID == ID)
                .Include(x => x.Options)
                .Include("Options.Image")
                .FirstOrDefault());
     }
 }
        public async Task <bool> DeleteQuestion(Question question)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Questions.Attach(question);

                context.Options.RemoveRange(question.Options);
                context.Questions.Remove(question);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 17
0
        public async Task <bool> DeleteQuiz(Quiz quiz)
        {
            using (var context = new AssessmentToolContext())
            {
                context.Quizzes.Attach(quiz);

                quiz.Questions.ForEach(qu => context.Options.RemoveRange(qu.Options));
                context.Questions.RemoveRange(quiz.Questions);
                context.Quizzes.Remove(quiz);

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 18
0
        public async Task <bool> DeleteRole(string ID)
        {
            using (var context = new AssessmentToolContext())
            {
                var role = context.Roles.Find(ID);

                if (role != null)
                {
                    context.Entry(role).State = System.Data.Entity.EntityState.Deleted;
                }

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 19
0
 public UserWithRoleEntity GetUserWithRolesByID(string userID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Users
                .Where(x => x.Id == userID)
                .Include(u => u.Roles)
                .Select(x => new UserWithRoleEntity()
         {
             User = x,
             Roles = x.Roles.Select(r => context.Roles.Where(role => role.Id == r.RoleId).FirstOrDefault()).ToList()
         }).FirstOrDefault());
     }
 }
Esempio n. 20
0
 public RoleWithUsersEntity GetRoleByID(string ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Roles
                .Where(r => r.Id == ID)
                .Include(u => u.Users)
                .Select(x => new RoleWithUsersEntity()
         {
             Role = x,
             Users = x.Users.Select(userRole => context.Users.Where(user => user.Id == userRole.UserId).FirstOrDefault()).ToList()
         }).FirstOrDefault());
     }
 }
Esempio n. 21
0
 public Quiz GetQuiz(int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.Quizzes
                .Where(q => q.ID == ID)
                .Include(q => q.Questions)
                .Include("Questions.Image")
                .Include("Questions.Options")
                .Include("Questions.Options.Image")
                .Where(q => q.Questions.Count > 0)            //get quiz with Questions greater than 0
                .FirstOrDefault());
     }
 }
Esempio n. 22
0
        //public async Task<bool> NewUser(AssessmentToolUser user)
        //{
        //    using (var context = new AssessmentToolContext())
        //    {
        //        context.Users.Add(user);

        //        return await context.SaveChangesAsync() > 0;
        //    }
        //}

        public async Task <bool> UpdateRole(IdentityRole role)
        {
            using (var context = new AssessmentToolContext())
            {
                var oldRole = context.Roles.Find(role.Id);

                if (oldRole != null)
                {
                    oldRole.Name = role.Name;

                    context.Entry(oldRole).State = System.Data.Entity.EntityState.Modified;
                }

                return(await context.SaveChangesAsync() > 0);
            }
        }
        public StudentQuizzesSearch GetUserQuizAttempts(string userID, string searchTerm, int pageNo, int pageSize)
        {
            using (var context = new AssessmentToolContext())
            {
                var search = new StudentQuizzesSearch();

                if (string.IsNullOrEmpty(searchTerm))
                {
                    search.StudentQuizzes = context.StudentQuizzes
                                            .Where(x => x.StudentID == userID)
                                            .Include("AttemptedQuestions")
                                            .Include("Quiz")
                                            .Include("Quiz.Questions")
                                            .Include("Quiz.Questions.Options")
                                            .Include("Student")
                                            .OrderByDescending(x => x.ModifiedOn)
                                            .Skip((pageNo - 1) * pageSize)
                                            .Take(pageSize)
                                            .ToList();

                    search.TotalCount = context.StudentQuizzes
                                        .Where(x => x.StudentID == userID).Count();
                }
                else
                {
                    search.StudentQuizzes = context.StudentQuizzes
                                            .Where(x => x.StudentID == userID)
                                            .Include("AttemptedQuestions")
                                            .Include("Quiz")
                                            .Include("Quiz.Questions")
                                            .Include("Quiz.Questions.Options")
                                            .Include("Student")
                                            .Where(x => x.Quiz.Name.ToLower().Contains(searchTerm.ToLower()))
                                            .OrderByDescending(x => x.ModifiedOn)
                                            .Skip((pageNo - 1) * pageSize)
                                            .Take(pageSize)
                                            .ToList();

                    search.TotalCount = context.StudentQuizzes
                                        .Where(x => x.StudentID == userID).Include(q => q.Quiz)
                                        .Where(x => x.Quiz.Name.ToLower().Contains(searchTerm.ToLower())).Count();
                }

                return(search);
            }
        }
        public async Task <bool> UpdateQuestion(Question question)
        {
            using (var context = new AssessmentToolContext())
            {
                //get the question by ID
                var oldQuestion = context.Questions.Find(question.ID);

                //delete this old question with all options
                context.Options.RemoveRange(oldQuestion.Options);
                context.Questions.Remove(oldQuestion);

                //add a new question with new options
                context.Questions.Add(question);

                return(await context.SaveChangesAsync() > 0);
            }
        }
 public StudentQuiz GetStudentQuiz(int ID)
 {
     using (var context = new AssessmentToolContext())
     {
         return(context.StudentQuizzes
                .Where(x => x.ID == ID)
                .Include("AttemptedQuestions")
                .Include("AttemptedQuestions.SelectedOptions")
                .Include("AttemptedQuestions.SelectedOptions.Option")
                .Include("AttemptedQuestions.SelectedOptions.Option.Image")
                .Include("Quiz")
                .Include("Quiz.Questions")
                .Include("Quiz.Questions.Options")
                .Include("Quiz.Questions.Options.Image")
                .Include("Student")
                .FirstOrDefault());
     }
 }
Esempio n. 26
0
        public async Task <bool> RemoveUserRole(string userID, string roleID)
        {
            using (var context = new AssessmentToolContext())
            {
                var user = context.Users.Find(userID);

                if (user != null)
                {
                    var userRole = user.Roles.Where(r => r.RoleId == roleID).FirstOrDefault();

                    if (user != null)
                    {
                        user.Roles.Remove(userRole);
                    }
                }

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 27
0
        public async Task <bool> AddUserRole(string userID, string roleID)
        {
            using (var context = new AssessmentToolContext())
            {
                var user = context.Users.Find(userID);

                var role = context.Roles.Find(roleID);

                if (user != null && role != null)
                {
                    user.Roles.Add(new IdentityUserRole()
                    {
                        UserId = userID, RoleId = roleID
                    });
                }

                return(await context.SaveChangesAsync() > 0);
            }
        }
Esempio n. 28
0
        public UsersSearch GetUsersWithRoles(string searchTerm, int pageNo, int pageSize)
        {
            using (var context = new AssessmentToolContext())
            {
                var search = new UsersSearch();

                if (string.IsNullOrEmpty(searchTerm))
                {
                    search.Users = context.Users
                                   .Include(u => u.Roles)
                                   .OrderByDescending(x => x.RegisteredOn)
                                   .Skip((pageNo - 1) * pageSize)
                                   .Take(pageSize)
                                   .Select(x => new UserWithRoleEntity()
                    {
                        User = x, Roles = x.Roles.Select(r => context.Roles.Where(role => role.Id == r.RoleId).FirstOrDefault())
                                          .ToList()
                    }).ToList();

                    search.TotalCount = context.Users.Count();
                }
                else
                {
                    search.Users = context.Users
                                   .Where(u => u.UserName.ToLower().Contains(searchTerm.ToLower()))
                                   .Include(u => u.Roles)
                                   .OrderByDescending(x => x.RegisteredOn)
                                   .Skip((pageNo - 1) * pageSize)
                                   .Take(pageSize)
                                   .Select(x => new UserWithRoleEntity()
                    {
                        User = x, Roles = x.Roles.Select(r => context.Roles.Where(role => role.Id == r.RoleId).FirstOrDefault())
                                          .ToList()
                    }).ToList();

                    search.TotalCount = context.Users
                                        .Where(u => u.UserName.ToLower().Contains(searchTerm.ToLower())).Count();
                }

                return(search);
            }
        }
        public List <Option> GetOptionsByIDs(List <int> optionIDs)
        {
            using (var context = new AssessmentToolContext())
            {
                var options = new List <Option>();

                if (optionIDs != null)
                {
                    foreach (var ID in optionIDs)
                    {
                        var option = context.Options.Find(ID);

                        if (option != null)
                        {
                            options.Add(option);
                        }
                    }
                }

                return(options);
            }
        }