コード例 #1
0
        protected void SubmitDB(int marks)
        {
            UserID = new Guid(Session["QuizTakerUserID"].ToString());
            QuizID = new Guid(Session["QuizTakerQuizID"].ToString());

            using (SqlConnection SqlConnection1 = new SqlConnection(QuizDBContext.QuizConnectionString()))
            {
                try
                {
                    SqlDataAdapter adapter     = new SqlDataAdapter();
                    string         QueryString = "INSERT INTO QuizScores";
                    QueryString += " (QuizID, QuizName, QuizTakenOn, QuizTakenBy, QuizScore) ";
                    QueryString += "VALUES (@QuizID, @QuizName, @QuizTakenOn, @QuizTakenBy, @QuizScore)";
                    SqlCommand InsertCommand = new SqlCommand(QueryString, SqlConnection1);
                    InsertCommand.Parameters.AddWithValue("QuizID", QuizID);
                    InsertCommand.Parameters.AddWithValue("QuizName", tableName);
                    InsertCommand.Parameters.AddWithValue("QuizTakenOn", DateTime.Now);
                    InsertCommand.Parameters.AddWithValue("QuizTakenBy", UserID);
                    InsertCommand.Parameters.AddWithValue("QuizScore", marks);

                    SqlConnection1.Open();
                    adapter.InsertCommand = InsertCommand;
                    InsertCommand.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    string error = e.ToString();
                }
            }
        }
コード例 #2
0
        protected void LoadTable(string TableName)
        {
            string Connection  = QuizDBContext.QuizConnectionString();
            string QueryString = "SELECT * FROM " + TableName;

            rowNumbers = new List <int>();
            dataTable  = new DataTable();

            dataTable = QueryExecute(QueryString, Connection, TableName);

            if (dataTable.Rows.Count > 0)
            {
                foreach (DataRow dr in dataTable.Rows)
                {
                    rowNumbers.Add(Convert.ToInt32(dr["QuizTableQuestionNumber"].ToString()));
                    Session["IsTableLoaded"] = "true";
                }
            }
            var parameterCurrentRow = Session["CurrentRow"];

            if (parameterCurrentRow != null)
            {
                currentRow = Convert.ToInt32(parameterCurrentRow.ToString());
            }
            else
            {
                currentRow            = rowNumbers[0];
                Session["CurrentRow"] = currentRow;
            }
            RowController(currentRow);
        }
コード例 #3
0
 public ActionResult <IEnumerable <QuestionDto> > GetAll()
 {
     using (QuizDBContext quizDbContext = new QuizDBContext())
     {
         return(quizDbContext.Question.Select(q => new QuestionDto(q)).ToList());
     }
 }
コード例 #4
0
 public List <Category> Get()
 {
     using (QuizDBContext quizDbContext = new QuizDBContext())
     {
         return(quizDbContext.Category.ToList());
     }
 }
コード例 #5
0
        private void DeleteQuestion(object sender, EventArgs e)
        {
            LinkButton DeleteButton = (LinkButton)sender;

            if (DeleteButton.Attributes["qnumber"].ToString() != "")
            {
                int rowNumber = Convert.ToInt16(DeleteButton.Attributes["qnumber"].ToString());
                using (SqlConnection SqlConnection1 = new SqlConnection(QuizDBContext.QuizConnectionString()))
                {
                    try
                    {
                        SqlDataAdapter adapter           = new SqlDataAdapter();
                        string         DeleteQueryString = string.Format("DELETE FROM {0} WHERE QuizTableQuestionNumber = @qnumber", tableName);
                        SqlCommand     UpdateCommand     = new SqlCommand(DeleteQueryString, SqlConnection1);
                        UpdateCommand.Parameters.AddWithValue("@qnumber", rowNumber);
                        SqlConnection1.Open();
                        adapter.DeleteCommand = UpdateCommand;


                        UpdateCommand.ExecuteNonQuery();
                        Response.Redirect("QuizSetup.aspx");
                    }
                    catch (Exception error)
                    {
                        string errorString = error.ToString();
                    }
                }
            }
        }
コード例 #6
0
        public void InitializeQuizList()
        {
            string QueryString = @"Select QuizName, QuizID FROM QuizList";

            DataTable datatable = new DataTable();

            datatable = QueryExecute(QueryString, QuizDBContext.QuizConnectionString());

            if (datatable != null)
            {
                if (datatable.Rows.Count > 0)
                {
                    foreach (DataRow dr in datatable.Rows)
                    {
                        HtmlGenericControl li = new HtmlGenericControl("li");
                        li.InnerText           = dr["QuizName"].ToString();
                        li.Attributes["class"] = "list-group-item";

                        HtmlButton editButton = new HtmlButton();
                        editButton.InnerText            = "Edit";
                        editButton.Attributes["class"]  = "btn btn-primary";
                        editButton.Attributes["value"]  = SecurityClass.EncryptString(dr["QuizName"].ToString(), "TableNamePhrase");
                        editButton.Attributes["quizid"] = SecurityClass.EncryptString(dr["QuizID"].ToString(), "QuizID");
                        editButton.Attributes["action"] = SecurityClass.EncryptString("Edit", "ActionPhrase");
                        editButton.Attributes["runat"]  = "server";
                        editButton.ServerClick         += EditQuiz;
                        editButton.Attributes["id"]     = "editButton";


                        HtmlButton DeleteButton = new HtmlButton();
                        DeleteButton.InnerText            = "Delete";
                        DeleteButton.Attributes["class"]  = "btn btn-danger";
                        DeleteButton.Attributes["value"]  = SecurityClass.EncryptString(dr["QuizName"].ToString(), "TableNamePhrase");
                        DeleteButton.Attributes["action"] = SecurityClass.EncryptString("Delete", "ActionPhrase");
                        DeleteButton.Attributes["quizid"] = SecurityClass.EncryptString(dr["QuizID"].ToString(), "QuizID");
                        DeleteButton.Attributes["runat"]  = "server";
                        DeleteButton.ServerClick         += DeleteQuiz;
                        DeleteButton.Attributes["id"]     = "deleteButton";

                        HtmlButton SendToButton = new HtmlButton();
                        SendToButton.InnerText            = "Send To Email";
                        SendToButton.Attributes["class"]  = "btn btn-success";
                        SendToButton.Attributes["value"]  = SecurityClass.EncryptString(dr["QuizName"].ToString(), "TableNamePhrase");
                        SendToButton.Attributes["action"] = SecurityClass.EncryptString("Delete", "ActionPhrase");
                        SendToButton.Attributes["quizid"] = SecurityClass.EncryptString(dr["QuizID"].ToString(), "QuizID");
                        SendToButton.Attributes["runat"]  = "server";
                        SendToButton.ServerClick         += SendToEmail;
                        SendToButton.Attributes["id"]     = "sendToEmailButton";

                        QuizListDiv.Controls.Add(li);
                        li.Controls.Add(editButton);
                        li.Controls.Add(DeleteButton);
                        li.Controls.Add(SendToButton);
                    }
                }
            }
        }
コード例 #7
0
ファイル: QuizController.cs プロジェクト: plicios/Test
        public ActionResult Post([FromBody] QuestionDto questionDto)
        {
            if (questionDto == null || questionDto.Answers == null || questionDto.Answers.Count <= 0 || string.IsNullOrEmpty(questionDto.Content))
            {
                return(BadRequest());
            }

            foreach (AnswerDto answer in questionDto.Answers)
            {
                if (string.IsNullOrEmpty(answer.Content))
                {
                    return(BadRequest());
                }
            }

            using (QuizDBContext quizDbContext = new QuizDBContext())
            {
                int      newQuestionId = quizDbContext.Question.Max(q => q.Id) + 1;
                Question question      = questionDto.Question;
                question.Id = newQuestionId;

                ICollection <QuestionAnswer> questionAnswers = question.QuestionAnswer;

                question.QuestionAnswer = new List <QuestionAnswer>();

                quizDbContext.Question.Add(question);



                int newQuestionAnswerId = quizDbContext.QuestionAnswer.Max(q => q.Id) + 1;
                int newAnswerId         = quizDbContext.Answer.Max(q => q.Id) + 1;

                foreach (QuestionAnswer questionAnswer in questionAnswers)
                {
                    questionAnswer.Id = newQuestionAnswerId;

                    Answer answer = questionAnswer.Answer;
                    answer.Id = newAnswerId;

                    questionAnswer.Answer     = null;
                    questionAnswer.AnswerId   = answer.Id;
                    questionAnswer.QuestionId = question.Id;
                    quizDbContext.Answer.Add(answer);

                    quizDbContext.QuestionAnswer.Add(questionAnswer);

                    newQuestionAnswerId++;
                    newAnswerId++;
                }

                quizDbContext.SaveChanges();
            }

            return(Ok());
        }
コード例 #8
0
ファイル: qResults.cs プロジェクト: jerome-1998/Quiz-Game
        //Constructor for show Results
        public qResults(int qAuswahl)
        {
            ctx = new QuizDBContext();
            Results resultsDB = ctx.Results.Where(x => x.Questions.qID.Equals(qAuswahl)).FirstOrDefault();

            rID = resultsDB.rID;
            results.Add("resultOne", resultsDB.resultONE);
            results.Add("resultTwo", resultsDB.relultTWO);
            results.Add("resultThree", resultsDB.resultTHREE);
            results.Add("resultTrue", resultsDB.trueRESULT);
        }
コード例 #9
0
        public IActionResult CreatePdf()
        {
            List <Question> questions;

            using (QuizDBContext quizDbContext = new QuizDBContext())
            {
                questions = new Randomizer().getRandomQuestions(quizDbContext.Question.ToList(), 10);
            }

//            var globalSettings = new GlobalSettings
//            {
//                ColorMode = ColorMode.Color,
//                Orientation = Orientation.Portrait,
//                PaperSize = PaperKind.A4,
//                Margins = new MarginSettings { Top = 10 },
//                DocumentTitle = "Random Quiz",
//            };
//
//            var objectSettings = new ObjectSettings
//            {
//                PagesCount = true,
//                HtmlContent = TemplateGenerator.GetHTMLString(questions),
//                WebSettings = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") },
//                HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true },
//                FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" }
//            };
//
//            var pdf = new HtmlToPdfDocument()
//            {
//                GlobalSettings = globalSettings,
//                Objects = { objectSettings }
//            };

            HtmlToPdf converter = new HtmlToPdf();

            // create a new pdf document converting an url
            PdfDocument doc = converter.ConvertHtmlString(TemplateGenerator.GetHTMLString(questions));

            // save pdf document
            byte[] pdfFile = doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdfFile, "application/pdf");

            fileResult.FileDownloadName = "Document.pdf";
            return(fileResult);

//            var file = _converter.Convert(pdfFile);
//            return File(file, "application/pdf","RandomQuiz.pdf");
        }
コード例 #10
0
 public static bool IsQuestionInDB(string qText)
 {
     //Show if Questiontext is already in the Database
     ctx = new QuizDBContext();
     if (ctx.Questions.Where(x => x.questionTEXT.Equals(qText)).FirstOrDefault() != null)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #11
0
        public ActionResult GenerateQuestions()
        {
            using (QuizDBContext quizDbContext = new QuizDBContext())
            {
                int newQuestionId       = quizDbContext.Question.Count() != 0 ? quizDbContext.Question.Max(q => q.Id) + 1 : 0;
                int newAnswerId         = quizDbContext.Answer.Count() != 0 ? quizDbContext.Answer.Max(q => q.Id) + 1 : 0;
                int newQuestionAnswerId = quizDbContext.QuestionAnswer.Count() != 0 ? quizDbContext.QuestionAnswer.Max(q => q.Id) + 1 : 0;
                for (int i = 0; i < 20; i++)
                {
                    Question question = new Question()
                    {
                        Content    = $"Pytanie nr {i}",
                        Id         = newQuestionId + i,
                        CategoryId = 0,
                        Difficulty = i % 3
                    };

                    quizDbContext.Question.Add(question);

                    for (int j = 0; j < 3; j++)
                    {
                        Answer answer = new Answer()
                        {
                            Id      = newAnswerId + i * 3 + j,
                            Content = $"Odpowiedź {j}"
                        };

                        QuestionAnswer questionAnswer = new QuestionAnswer()
                        {
                            Id         = newQuestionAnswerId + i * 3 + j,
                            IsCorrect  = j == 0,
                            QuestionId = question.Id,
                            AnswerId   = answer.Id
                        };

                        quizDbContext.Answer.Add(answer);
                        quizDbContext.QuestionAnswer.Add(questionAnswer);
                    }
                }

                quizDbContext.SaveChanges();
            }

            return(Ok());
        }
コード例 #12
0
        /// <summary>
        /// On Page load Queries the "TableName" table and populates the side bar with the list of questions.
        /// </summary>
        /// <param name="TableName"></param>
        protected void EditTable(string TableName)
        {
            string QueryString = @"Select * FROM " + TableName;

            DataTable datatable = new DataTable();

            datatable = QueryExecute(QueryString, QuizDBContext.QuizConnectionString());

            if (datatable != null)
            {
                if (datatable.Rows.Count > 0)
                {
                    foreach (DataRow dr in datatable.Rows)
                    {
                        LinkButton li = new LinkButton();
                        li.Text = dr["QuizTableQuizQuestion"].ToString();
                        li.Attributes["class"]   = "list-group-item quizSetupListGroup";
                        li.Attributes["qnumber"] = dr["QuizTableQuestionNumber"].ToString();
                        li.CommandArgument       = dr["QuizTableQuestionNumber"].ToString();
                        li.Attributes["runat"]   = "server";
                        li.Click += new System.EventHandler(QuizSideBarLinkButton_Click);

                        HtmlGenericControl questionDiv = new HtmlGenericControl("div");
                        questionDiv.Attributes["class"] = "col-xs-11 quizSetupDiv";

                        HtmlGenericControl deleteButtonDiv = new HtmlGenericControl("div");
                        deleteButtonDiv.Attributes["class"] = "col-xs-1 quizSetupDiv";

                        LinkButton DeleteButton = new LinkButton();
                        DeleteButton.Text = "Delete";
                        DeleteButton.Attributes["class"]   = "btn btn-danger";
                        DeleteButton.Attributes["runat"]   = "server";
                        DeleteButton.Attributes["id"]      = "quizSetupDeleteButton";
                        DeleteButton.Attributes["qnumber"] = dr["QuizTableQuestionNumber"].ToString();
                        DeleteButton.Click += new System.EventHandler(DeleteQuestion);

                        questionDiv.Controls.Add(li);
                        deleteButtonDiv.Controls.Add(DeleteButton);
                        quizQuestionListBar.Controls.Add(questionDiv);
                        quizQuestionListBar.Controls.Add(deleteButtonDiv);
                    }
                }
            }
        }
コード例 #13
0
ファイル: QuizController.cs プロジェクト: plicios/Test
 public ActionResult <IEnumerable <QuestionDto> > Get([FromQuery(Name = "number")] int?number)
 {
     if (!number.HasValue)
     {
         number = 10;
     }
     using (QuizDBContext quizDbContext = new QuizDBContext())
     {
         List <Question>       questions       = quizDbContext.Question.ToList();
         List <QuestionAnswer> questionAnswers = quizDbContext.QuestionAnswer.ToList();
         List <Answer>         answers         = quizDbContext.Answer.ToList();
         foreach (QuestionAnswer questionAnswer in questionAnswers)
         {
             questionAnswer.Answer = answers.Find(answer => answer.Id == questionAnswer.AnswerId);
             questions.Find(question => question.Id == questionAnswer.QuestionId).QuestionAnswer.Add(questionAnswer);
         }
         return(new Randomizer().getRandomQuestions(quizDbContext.Question.ToList(), number.Value).Select(q => new QuestionDto(q)).ToList());
     }
 }
コード例 #14
0
        /// <summary>
        /// Click event when any question is clicked in EditMode from the sidebar of the QuizSetup.aspx page
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void QuizSideBarLinkButton_Click(object sender, EventArgs e)
        {
            //Response.Redirect("testpage.aspx");
            LinkButton li = (LinkButton)sender;
            string     parameterTableRowID = li.Attributes["qnumber"].ToString();

            if (parameterTableRowID != "")
            {
                DataSet dataset = new DataSet();
                using (SqlConnection SqlConnection1 = new SqlConnection(QuizDBContext.QuizConnectionString()))
                {
                    try
                    {
                        DataTable      dataTable   = new DataTable();
                        SqlDataAdapter adapter     = new SqlDataAdapter();
                        string         QueryString = string.Format("SELECT * FROM {0} WHERE QuizTableQuestionNumber = @qnumber", tableName);
                        SqlCommand     Command     = new SqlCommand(QueryString, SqlConnection1);
                        Command.Parameters.AddWithValue("@qnumber", parameterTableRowID);
                        SqlConnection1.Open();
                        adapter.SelectCommand = Command;

                        adapter.Fill(dataset, tableName);
                        dataTable = dataset.Tables[tableName];
                        SqlConnection1.Close();

                        if (dataTable.Rows.Count > 0)
                        {
                            AddHTMLElements(false, dataTable);
                            Session["qnumber"] = parameterTableRowID;
                        }
                    }
                    catch (Exception error)
                    {
                        string errorString = error.ToString();
                    }
                }
            }
            else
            {
                Response.Redirect("QuizSetup.aspx");
            }
        }
コード例 #15
0
        public ActionResult Post([FromBody] Category category)
        {
            if (category == null)
            {
                return(BadRequest("category is null"));
            }
            else if (string.IsNullOrEmpty(category.Name))
            {
                return(BadRequest("category name is null"));
            }


            using (QuizDBContext quizDbContext = new QuizDBContext())
            {
                category.Id = quizDbContext.Category.Max(q => q.Id) + 1;
                quizDbContext.Category.Add(category);

                quizDbContext.SaveChanges();
            }

            return(Ok());
        }
コード例 #16
0
        /// <summary>
        /// Deletes the Quiz and removes the list item from the QuizList table tableName=TableName
        /// </summary>
        /// <param name="TableName"></param>
        protected void DeleteTable(string TableName)
        {
            string ConnectionString = QuizDBContext.QuizConnectionString();

            if (TableName != "")
            {
                string RemoveQuizListQueryString = "DELETE FROM QuizList WHERE QuizID='" + quizid + "'";

                string DropQueryString = "IF OBJECT_ID('" + TableName + "', 'U') IS NOT NULL ";
                DropQueryString += "BEGIN ";
                DropQueryString += "DROP TABLE " + TableName;
                DropQueryString += " END";
                try
                {
                    NonQueryExecute(DropQueryString, ConnectionString, "DeleteTable");
                    NonQueryExecute(RemoveQuizListQueryString, ConnectionString, "DeleteTable");
                }
                catch
                {
                    string s = "";
                }
            }
        }
コード例 #17
0
        /// <summary>
        /// creates table with the specified table name in the Quiz Database and adds a entry into the QuizList Table
        /// </summary>
        /// <param name="TableName"></param>
        protected void CreateTable(string TableName)
        {
            string ConnectionString = QuizDBContext.QuizConnectionString();

            if (TableName != "")
            {
                string QuizListQueryString = "INSERT INTO QuizList VALUES (@QuizID, @QuizName, @QuizCreatedByUserID, @QuizCreatedOn, @QuizModifiedOn) ";
                string QuizNameQueryString = "CREATE TABLE " + TableName + "(QuizTableQuizID uniqueidentifier NOT NULL,QuizTableQuizName varchar(50) NOT NULL,QuizTableQuestionNumber int IDENTITY(1,1), QuizTableQuizQuestion text NOT NULL, QuizTableQuizAnswer1 text NULL, QuizTableQuizAnswer2 text NULL, QuizTableQuizAnswer3 text NULL,QuizTableQuizAnswer4 text NULL, QuizTableQuizAnswer5 text NULL, QuizTableQuizAnswer6 text NULL, QuizTableAnswer text NOT NULL, PRIMARY KEY (QuizTableQuestionNumber))";
                try
                {
                    NonQueryExecute(QuizListQueryString, ConnectionString, "CreateList");
                    NonQueryExecute(QuizNameQueryString, ConnectionString, "CreateTable");
                }
                catch (Exception e)
                {
                    testLabel.Text = e.ToString();
                }
            }
            else
            {
                testLabel.Text = "No Table selected";
            }
        }
コード例 #18
0
 public DashboardService(IServiceProvider serviceProvider)
 {
     _context = serviceProvider.GetService <QuizDBContext>();
 }
コード例 #19
0
 public QuestionRepo(QuizDBContext context) : base(context)
 {
     _context = context;
 }
コード例 #20
0
 public QuizRepo(QuizDBContext context) : base(context)
 {
     this._context = context;
 }
コード例 #21
0
 public AuthorizationService(IServiceProvider serviceProvider)
 {
     _context = serviceProvider.GetService <QuizDBContext>();
 }
コード例 #22
0
 public ChoiceRepo(QuizDBContext context) : base(context)
 {
     _context = context;
 }
コード例 #23
0
ファイル: qResults.cs プロジェクト: jerome-1998/Quiz-Game
 //Constructor for add Results
 public qResults(Dictionary <string, string> results)
 {
     ctx          = new QuizDBContext();
     this.results = results;
 }
コード例 #24
0
 public QuestionController(QuizDBContext context)
 {
     _context = context;
 }
コード例 #25
0
 public Repository(IServiceProvider serviceProvider)
 {
     _context = serviceProvider.GetService <QuizDBContext>();
 }
コード例 #26
0
 public QuizController(QuizDBContext context)
 {
     _context = context;
 }
コード例 #27
0
 public DifficultyRepo(QuizDBContext context) : base(context)
 {
 }
コード例 #28
0
 public UserChoiceRepo(QuizDBContext context)
 {
     this._context = context;
 }
コード例 #29
0
 public RoleRepo(QuizDBContext context) : base(context)
 {
     _context = context;
 }
コード例 #30
0
 public UserQuizRepo(QuizDBContext context) : base(context)
 {
     _context = context;
 }