/// <summary>
        /// Returns all votes aggregated for a particular date range
        /// </summary>
        /// <param name="questionId"></param>
        /// <param name="startingFrom"></param>
        /// <returns></returns>
        public QuizResult GetVotes(int questionId, DateTime startingFrom)
        {
            Question question = GetQuestion(questionId);

            QuizResult result = new QuizResult();

            result.QuestionId = questionId;

            foreach (var option in question.Answers)
            {
                result.Answers.Add(new DeeAnswer{AnswerText = option.Answer1, Id = option.AnswerId});
            }

            using (QuizEntities context = new QuizEntities())
            {
                var totals =
                    context.QuizResponses.GroupBy(p => p.AnswerId)
                           .Select(p => new {p.Key, count = p.Count(i => i.Date >= startingFrom)});

                foreach (var c in totals)
                {
                    result.Answers.Find(d=>d.Id == c.Key).NumberOfVotes = c.count;
                }
            }

            return result;
        }
Example #2
0
 public void UpdateOutput(Participant model)
 {
     using (QuizEntities db = new QuizEntities())
     {
         db.Entry(model).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
     }
 }
Example #3
0
 public Participant Insert(Participant model)
 {
     using (QuizEntities db = new QuizEntities())
     {
         db.Participants.Add(model);
         db.SaveChanges();
         return(model);
     }
 }
 public HttpResponseMessage GetAnswers(int[] qIDs)
 {
     using (QuizEntities db = new QuizEntities())
     {
         var result = db.Questions.AsEnumerable().Where(y => qIDs.Contains(y.QnID)).
                      OrderBy(x => { return(Array.IndexOf(qIDs, x.QnID)); }).
                      Select(z => z.Answer).ToArray();
         return(Request.CreateResponse(HttpStatusCode.OK, result));
     }
 }
        public ActionResult Login(string username, string password)
        {
            var viewModel = new UserViewModel();

            viewModel.Username = username;

            using (QuizEntities context = new QuizEntities())
            {
                context.Database.Exists();
                if (context != null)
                {
                    if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
                    {
                        viewModel.ErrorMessage = "Incorrect username and/or password!";
                        return(View(viewModel));
                    }

                    var user = _userDal.GetUserByUsername(username);

                    if (user != null && user.ActivStatus)
                    {
                        if (user.Password.Equals(SHA512Encrypter.Encrypt(password), StringComparison.OrdinalIgnoreCase))
                        {
                            FormsAuthentication.SetAuthCookie(user.Username, false);
                            var quizUser = new QuizUser
                            {
                                Id       = user.Id,
                                Username = user.Username,
                                IsAdmin  = user.IsAdmin
                            };
                            if (!user.IsAdmin)
                            {
                                quizUser.TestId = _userTestDal.GetTestIdByUserId(user.Id);
                            }

                            this.Session.Add("QuizUser", quizUser);

                            if (user.IsAdmin)
                            {
                                return(RedirectToAction("StartPageAdmin", "Admin"));
                            }

                            return(RedirectToAction("StartPage", "Quiz"));
                        }
                    }
                    viewModel.ErrorMessage = "Incorrect username and/or password!";
                }
                else
                {
                    viewModel.ErrorMessage = "You are not connect to database";
                }
            }
            return(View(viewModel));
        }
        /// <summary>
        /// Gets the question and answers by id
        /// </summary>
        /// <param name="questionId"></param>
        /// <returns></returns>
        public Question GetQuestion(int questionId)
        {
            using (QuizEntities context = new QuizEntities())
            {

                var question = context.Questions
                               .Include("Answers")
                               .Where(qn => qn.Id == questionId)

                               .FirstOrDefault();

                return question;
            }
        }
        /// <summary>
        /// Save a single user answer to the db
        /// </summary>
        /// <param name="data"></param>
        public void SaveAnswer(QuizResponse data)
        {
            using (QuizEntities context = new QuizEntities())
            {

                context.QuizResponses.AddObject(new QuizResponse
                                                    {
                                                        Date = DateTime.Now,
                                                        AnswerId = data.AnswerId,
                                                        QuestionId = data.QuestionId
                                                    });

                context.SaveChanges();

            }
        }
        public HttpResponseMessage GetQuestion()
        {
            using (QuizEntities db = new QuizEntities())
            {
                var Qns = db.Questions
                          .Select(x => new { QnID = x.QnID, Qn = x.Qn, ImageName = x.ImageName, x.Option1, x.Option2, x.Option3, x.Option4 })
                          .OrderBy(y => Guid.NewGuid()).Take(10).ToArray();

                var updated = Qns.AsEnumerable().Select(x => new
                {
                    QnID      = x.QnID,
                    ImageName = x.ImageName,
                    Qn        = x.Qn,
                    Options   = new string[] { x.Option1, x.Option2, x.Option3, x.Option4 }
                }).ToList();
                return(Request.CreateResponse(HttpStatusCode.OK, updated));
            }
        }
Example #9
0
 protected void gvQuestions_RowDeleting(object sender, GridViewDeleteEventArgs e)
 {
     try
     {
         int qId = Convert.ToInt32(gvQuestions.DataKeys[e.RowIndex].Values[0]);
         using (QuizEntities context = new QuizEntities())
         {
             Question question = (from x in context.Questions
                                  where x.QuestionId == qId
                                  select x).FirstOrDefault();
             context.Questions.Remove(question);
             context.SaveChanges();
         }
         this.BindGrid();
     }
     catch
     {
         Response.Redirect("~/Admin/QuizList.aspx");
     }
 }
Example #10
0
        protected void gvUser_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string username = gvUser.Rows[e.RowIndex].Cells[1].Text;

            string query = "SELECT DISTINCT UserId FROM aspnet_Users WHERE UserName = '******'";

            con = new SqlConnection(conStr);
            SqlDataAdapter adapter = new SqlDataAdapter(query, con);
            DataTable      dt      = new DataTable();

            adapter.Fill(dt);
            //DataSet dataset = new DataSet();
            //adapter.Fill(dataset);

            Guid userId = Guid.Parse(dt.Rows[0][0].ToString());



            using (QuizEntities context = new QuizEntities())
            {
                QHSEQuiz.Model.Hub hub = context.Hubs.Where(x => x.UserName == username).First();
                context.Hubs.Remove(hub);

                //aspnet_Profile profile = context.aspnet_Profile.Where(x => x.PropertyValuesString == username).First();
                //context.aspnet_Profile.Remove(profile);

                aspnet_Users user = context.aspnet_Users.Where(x => x.UserName == username).First();
                context.aspnet_Users.Remove(user);

                aspnet_Membership mem = context.aspnet_Membership.Where(x => x.UserId == userId).First();
                context.aspnet_Membership.Remove(mem);

                aspnet_UsersInRoles userInRole = context.aspnet_UsersInRoles.Where(x => x.UserId == userId).First();
                context.aspnet_UsersInRoles.Remove(userInRole);


                context.SaveChanges();
                Response.Redirect("~/Admin/ManageUsers.aspx");
            }
        }
Example #11
0
        public static void DefineParagraphs(Document document)
        {
            QuizEntities      context = new QuizEntities();
            List <QuizResult> qrList  = context.QuizResults.ToList();

            foreach (QuizResult qr in qrList)
            {
                string  quizName  = context.Quizs.Where(x => x.QuizId == qr.QuizId).Select(x => x.Name).First();
                string  quizTaker = context.QuizResults.Where(x => x.ResultId == qr.ResultId).Select(x => x.Name).First();
                string  hub       = context.QuizResults.Where(x => x.ResultId == qr.ResultId).Select(x => x.Username).First();
                int?    HRMS      = context.QuizResults.Where(x => x.ResultId == qr.ResultId).Select(x => x.HRMS).First();
                decimal?score     = context.QuizResults.Where(x => x.ResultId == qr.ResultId).Select(x => x.Mark).First();

                Paragraph para = document.LastSection.AddParagraph(quizName, "Heading1");
                para.Format.Alignment = ParagraphAlignment.Center;
                para = document.LastSection.AddParagraph("Name: ");
                para.AddText(quizTaker);
                para.AddLineBreak();
                para.AddText(hub);
                para.AddLineBreak();


                if (score < 80)
                {
                    FormattedText ftScore = para.AddFormattedText("Score: " + score + "%");
                    ftScore.Color = Colors.Red;
                }
                else
                {
                    FormattedText ftScore = para.AddFormattedText("Score: " + score + "%");
                    ftScore.Color = Colors.Green;
                }
                para.AddLineBreak();
                if (HRMS != null)
                {
                    para = document.LastSection.AddParagraph("HRMS: ");
                    para.AddText(HRMS.ToString());
                    para.AddLineBreak();
                    para.AddLineBreak();
                }
                else
                {
                    para.AddLineBreak();
                }

                List <QuestionResponse> qresList = context.QuestionResponses.Where(x => x.ResultId == qr.ResultId).ToList();
                foreach (QuestionResponse qres in qresList)
                {
                    string        question      = context.Questions.Where(x => x.QuestionId == qres.QuestionId).Select(x => x.Description).First();
                    int?          questionIndex = context.Questions.Where(x => x.QuestionId == qres.QuestionId).Select(x => x.OrderInQuiz).First();
                    FormattedText ft            = para.AddFormattedText(questionIndex.ToString() + ". " + question);
                    //ft.Size = 12;
                    ft.Bold  = true;
                    ft.Color = Colors.Navy;
                    para.AddLineBreak();
                    string response = context.QuestionOptions.Where(x => x.OptionId == qres.OptionId).Select(x => x.Description).First();
                    int    answerId = context.QuestionAnswers.Where(x => x.QuestionId == qres.QuestionId).Select(x => x.OptionId).First();
                    string answer   = context.QuestionOptions.Where(x => x.OptionId == answerId).Select(x => x.Description).First();
                    para = document.LastSection.AddParagraph("Response: " + response);
                    para.AddLineBreak();

                    if (response == answer)
                    {
                        //para = document.LastSection.AddParagraph();
                        FormattedText ftResponse = para.AddFormattedText("Correct!");
                        ftResponse.Color = Colors.Green;
                    }
                    else
                    {
                        //para = document.LastSection.AddParagraph();
                        FormattedText ftResponse = para.AddFormattedText("Incorrect!");
                        ftResponse.Color = Colors.Red;
                    }

                    //para = document.LastSection.AddParagraph();
                    //para.AddText(response);
                    para.AddLineBreak();
                    para.AddLineBreak();
                }
            }
            //Paragraph paragraph = document.LastSection.AddParagraph("Paragraph Layout Overview", "Heading1");
            //paragraph.AddBookmark("Paragraphs");

            //DemonstrateAlignment(document);
            //DemonstrateIndent(document);
            //DemonstrateFormattedText(document);
            //DemonstrateBordersAndShading(document);
        }