void btnAddQuestion_Click(object sender, EventArgs e) { QuestionData newQuestion = new QuestionData(0); frmQuestion questionForm = new frmQuestion(newQuestion); questionForm.ShowDialog(); //check to see the question is valid ie user didnt cancel if (newQuestion.Answers.Count > 0) { //add question to display QuestionBox questionBox = new QuestionBox(newQuestion, questionBoxes.Count + 1, myObjective); questionBox.Disposed += new EventHandler(questionBox_Disposed); questionBoxes.Add(questionBox); pnlMain.Controls.Add(questionBox); //add question to currentQuiz we are editing GlobalData.currentQuiz.addQuestion(newQuestion); //set locations via resize pnlMain_Resize(null, null); pnlMain.ScrollControlIntoView(questionBox); } }
//suffle contact point order //select first 3 contact points //suffle each of the contact point questions //assign contact point first question set to the random pool void AllRandomAllQuestions() { // Take all questions into a list List <QuestionData> QuestionsPool = new List <QuestionData>(); int size = 0; foreach (var point in contactPoints.points) { for (int i = 0; i < point.questions.Length; i++) { QuestionsPool.Add(point.questions[i]); size++; } } // Suffle questions QuestionData[] AllRandomQuestions = new QuestionData[size]; AllRandomQuestions = QuestionsPool.ToArray(); SuffleQuestionOrder(ref AllRandomQuestions); // Add first 5 questions to game QuestionData[] tmp = new QuestionData[maxRandomQs]; for (int i = 0; i < maxRandomQs; i++) { tmp[i] = AllRandomQuestions[i]; } questions = tmp; }
private void ShowQuestion() { questionPanel.SetActive(true); nextButton.SetActive(false); explanationButton.SetActive(false); questionIndex = Random.Range(0, questionPool.Length); RemoveAnswerButtons(); canAnswer = true; QuestionData questionData = questionPool[questionIndex]; questionDisplayText.text = questionData.questionText; for (int i = 0; i < questionData.answers.Length; i++) { GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); answerButtonGameObjects.Add(answerButtonGameObject); answerButtonGameObject.transform.SetParent(answerButtonParent); AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.GetComponent <Image>().color = new Color32(255, 255, 255, 50); answerButton.Setup(questionData.answers[i]); } }
private void ShowQuestion() { // 질문을 시작하기 전에 이전 답변버튼들을 지워준다. ClearAnswerButtons(); // 질문 배열의 현재 인덱스를 가져온다. QuestionData questionData = questions[questionIndex]; // 질문 ui = 질문 데이터의 질문 questionText.text = questionData.questionText; // 답변들을 가지고 온다. AnswerData[] answers = questionData.answers; // 배열의 순번대로 넘겨준다. for (int i = 0; i < answers.Length; i++) { // 버튼을 풀장에서 하나 가지고 온다. GameObject answerButton = buttonPool.GetObject(); // 가져온 게임오브젝트의 버튼을 찾는다. answerButton.GetComponent <AnswerButton>().SetUp(answers[i]); buttons.Add(answerButton); // 리스트에 버튼 추가해줘서 나중에 사용하도록 만들어 준다. answerButton.transform.SetParent(buttonHolder); // 엔서버튼이 생성될 틀의 위치를 지정. 부모를 지정해 준다. // 버그수정코드, 유니티가 가져올때 유아이 크기를 잘 못 출력하는 버그가 있어서. 다시 크기를 조절하는 코드이다. answerButton.transform.localScale = new Vector3(1, 1, 1); } }
private void ShowQuestion() { RemoveAnswerButtons(); QuestionData questionData = questionPool[questionIndex]; questionText.text = questionData.colorName; questionDisplayBackgroundColor = new Color32( questionData.colorRGB[0], questionData.colorRGB[1], questionData.colorRGB[2], OBAQUE_VALUE); GameObject.Find("QuestionPanel").GetComponent <RawImage>().color = questionDisplayBackgroundColor; for (int i = 0; i < questionData.answers.Length; i++) { GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); answerButtonGameObject.transform.SetParent(answerButtonParent); answerButtonGameObjects.Add(answerButtonGameObject); AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.Setup(questionData.answers[i]); } }
private void Awake() { if (instance == null) { DontDestroyOnLoad(gameObject); instance = this; } else { Destroy(gameObject); } #region populate all arrays/lists using our .json files _questionJson = Application.streamingAssetsPath + "/Text/AllQuestions.json"; //find location of AllQuestions.json string allQuestionText = File.ReadAllText(_questionJson); //read all the text in that .json file questionData = QuestionData.CreatFromJson(allQuestionText); //convert text in that .json file into something that Unity can read //(in this case, an object containing a List of strings) questionPool = questionData.questionPool.questions; //initialize our List variable as the List of strings in our .json file _answerJson = Application.streamingAssetsPath + "/Text/AllAnswers.json"; //find location of AllAnswers.json string allAnswerText = File.ReadAllText(_answerJson); //read all the text in that .json file characterData = CharacterData.CreateFromJson(allAnswerText); //convert text in that .json file into something that Unity can read //(in this case, an array of objects, each containing a string name, and a List of string answers) _endingJson = Application.streamingAssetsPath + "/Text/AllEndings.json"; //find location of AllEndings.json string allEndingText = File.ReadAllText(_endingJson); //read all the text in that .json file endingData = EndingData.CreateFromJson(allEndingText); //convert text in that .json file into something that Unity can read //(in this case, an array of objects, each containing a string name, and an array of string parings) #endregion }
public async Task SaveData(int questionId, int?id, string input, string output, int time, float memory, bool isSample) { var state = id == null ? EntityState.Added : EntityState.Modified; QuestionData data; if (id == null) { data = new QuestionData { QuestionId = questionId }; } else { data = await _db.QuestionDatas .Where(x => x.QuestionId == questionId && x.Id == id) .FirstAsync(); } data.Input = input; data.Output = output.TrimEnd(); data.TimeLimit = time; data.MemoryLimitMb = memory; data.UpdateTime = DateTime.Now; data.IsSample = isSample; _db.Entry(data).State = state; await _db.SaveChangesAsync(); }
private void button_Click() { MessageBox.Show("Start Test!!"); System.Diagnostics.Debug.WriteLine("触发了"); Slide activeSlide = Globals.ThisAddIn.Application.ActivePresentation.SlideShowWindow.View.Slide; Question question = new Question(); question.questionType = int.Parse(activeSlide.Shapes["questionType"].TextFrame.TextRange.Text); question.questionScore = int.Parse(activeSlide.Shapes["questionScore"].TextFrame.TextRange.Text); question.questionLimitTime = int.Parse(activeSlide.Shapes["questionLimitTime"].TextFrame.TextRange.Text); question.questionDescribe = activeSlide.Shapes["questionDescribe"].TextFrame.TextRange.Text; question.questionAnswer = activeSlide.Shapes["questionAnswer"].TextFrame.TextRange.Text; System.Diagnostics.Debug.WriteLine("触发了!!"); List <Option> optionList = new List <Option>(); Option option = new Option(); option.optionType = activeSlide.Shapes["questionAnswer"].TextFrame.TextRange.Text; option.optionDescribe = activeSlide.Shapes["questionDescribe"].TextFrame.TextRange.Text; optionList.Add(option); QuestionData questionData = new QuestionData(); questionData.question = question; questionData.optionList = optionList; System.Diagnostics.Debug.WriteLine("触发了!!!~~"); SubmitQuestionForm submitQuestionForm = new SubmitQuestionForm(); submitQuestionForm.questionData = questionData; //submitQuestionForm.LoadText1(activeSlide.Shapes["questionScore"].TextFrame.TextRange.Text, activeSlide.Shapes["questionLimitTime"].TextFrame.TextRange.Text); submitQuestionForm.LoadText(); submitQuestionForm.ShowDialog(); }
internal void FillContents(Question question, QuestionContents contents, QuestionData data, int idx) { Question = question; QuestionContents = contents; QuestionData = data; Index = idx; CorrectAnswer = QuestionContents.CorrectAnswer; Image1.ImageUrl = QuestionContents.Keys.Contains("image") ? QuestionContents.Get <Parse.ParseFile>("image").Url.ToString() : ""; lbQuestion.Text = QuestionContents.Get <string>("questionText"); item1.Text = item1.Value = QuestionContents.Answers[0]; item2.Text = item2.Value = QuestionContents.Answers[1]; item3.Text = item3.Value = QuestionContents.Answers[2]; item4.Text = item4.Value = QuestionContents.Answers[3]; if (QuestionContents.Answers.Count == 5) { item5.Text = item5.Value = QuestionContents.Answers[4]; item5.Attributes.Remove("class"); } else { item5.Attributes.Add("class", "hidden"); } }
public static QuestionData[] readQuestionsFromWeb() { int amount = 15; string string_url = "https://opentdb.com/api.php?amount=" + amount + "&type=multiple"; WWW www = new WWW(string_url); if (www.error != null) { Debug.Log("ERROR: " + www.error); } while (!(www.isDone)) { } if (www.isDone) { string jsonString = www.text; QuestionData[] questions = new QuestionData[amount]; // From file to json wrapper object JsonData jsonvale = JsonMapper.ToObject(jsonString); for (int i = 0; i < jsonvale["results"].Count; i++) { Debug.Log("Frage"); questions[i] = new QuestionData(jsonvale, i); } return(questions); } return(null); }
public void ShowQuestion() { RoundData currentRoundData = dataController.GetCurrentRoundData(round); QuestionData[] questionPool = currentRoundData.questions; QuestionData questionData = questionPool[questionIndex]; categoryDisplay.SetActive(false); questionDisplay.SetActive(true); questionText.text = questionData.questionText; for (int i = 0; i < answerButtons.Length; i++) { AnswerData answerData = new AnswerData(); answerData.answerText = questionData.answers[i].answerText; answerData.isCorrect = questionData.answers[i].isCorrect; answerButtons[i].Setup(answerData); if (i == 0) { answerAText.text = answerData.answerText; } if (i == 1) { answerBText.text = answerData.answerText; } if (i == 2) { answerCText.text = answerData.answerText; } if (i == 3) { answerDText.text = answerData.answerText; } } }
void ShowQuestion() { foto = GameObject.Find("foto").GetComponent <Image>(); Debug.Log(" nombre " + foto.name); RemoveAnswerButtons(); int pregunta = Random.Range(0, questionPool.Length); QuestionData questionData = questionPool[pregunta]; // Get the QuestionData for the current question questionText.text = questionData.questionText; // Update questionText with the correct text string filePath2 = Application.streamingAssetsPath + "/"; filePath2 = filePath2 + "" + questionData.imagen; //Debug.Log(" imagen" +questionData.imagen); //Debug.Log("direccion imagen" + filePath2); foto.sprite = Resources.Load <Sprite>(filePath2); for (int i = 0; i < questionData.answers.Length; i++) // For every AnswerData in the current QuestionData... { GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); // Spawn an AnswerButton from the object pool answerButtonGameObjects.Add(answerButtonGameObject); answerButtonGameObject.transform.SetParent(answerButtonParent); answerButtonGameObject.transform.localScale = Vector3.one; AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.SetUp(questionData.answers[i]); // Pass the AnswerData to the AnswerButton so the AnswerButton knows what text to display and whether it is the correct answer } }
internal void FillContents(Question question, QuestionContents contents, QuestionData data, int idx) { Question = question; QuestionContents = contents; QuestionData = data; Index = idx; CorrectAnswer = QuestionContents.CorrectAnswer; Image1.ImageUrl = QuestionContents.Keys.Contains("image") ? QuestionContents.Get<Parse.ParseFile>("image").Url.ToString() : ""; lbQuestion.Text = QuestionContents.Get<string>("questionText"); item1.Text = item1.Value = QuestionContents.Answers[0]; item2.Text = item2.Value = QuestionContents.Answers[1]; item3.Text = item3.Value = QuestionContents.Answers[2]; item4.Text = item4.Value = QuestionContents.Answers[3]; if (QuestionContents.Answers.Count == 5) { item5.Text = item5.Value = QuestionContents.Answers[4]; item5.Attributes.Remove("class"); } else { item5.Attributes.Add("class", "hidden"); } }
private static QuestionData GetNewSubtractionQuestion(int level, int spawnNumber) { QuestionData newQData = new QuestionData(); int a = level + 10; int b = UnityEngine.Random.Range(0, a); newQData.question = a.ToString() + " - " + b.ToString(); int correctAnswer = a - b; newQData.correctAnswer = correctAnswer; HashSet <int> differentNumbersCollection = new HashSet <int>(); differentNumbersCollection.Add(correctAnswer); while (differentNumbersCollection.Count < 4) { int newIncorrectAnswer = UnityEngine.Random.Range(0, a); if (newIncorrectAnswer != correctAnswer && !differentNumbersCollection.Contains(newIncorrectAnswer)) { differentNumbersCollection.Add(newIncorrectAnswer); } } newQData.givenNumbers = differentNumbersCollection.ToList(); Shuffle(newQData.givenNumbers); return(newQData); }
private void MessageWindowCallback(bool ok) { if (ok) { QuestionData questionData = this.historyListView.SelectedItem as QuestionData; if (questionData == null) { return; } MathSetting.Instance.QuestionDataCollection.Remove(questionData); Assembly assembly = Assembly.GetExecutingAssembly(); string dataFolder = System.IO.Path.GetDirectoryName(assembly.Location); dataFolder = System.IO.Path.Combine(dataFolder, "Data\\Rapid"); if (!System.IO.Directory.Exists(dataFolder)) { System.IO.Directory.CreateDirectory(dataFolder); } try { File.Delete(System.IO.Path.Combine(dataFolder, questionData.Id + "." + QuestionData.ext)); } catch { } } }
public async Task TestGetQuestionsPastPageOne() { // Arrange var repo = new Mock <IRepositoryEnq>(); var questions = QuestionData.TestQuestions().ToList(); var maxPage = MaxPage(questions.Count); var midPage = 2; var midSkip = midPage * PageLength - PageLength; var maxSkip = maxPage * PageLength - PageLength; SetUpPastOneRepo(repo, midSkip, maxSkip, questions); var controller = new ReadonlyApiController(repo.Object); // Act var result = await controller.GetQuestions(midPage); await controller.GetQuestions(maxPage + 1000); // Assert Assert.Equal(PageLength, (result.Value as List <Question>).Count); repo.Verify(r => r.GetAllAsync (null, Desc(), true, It.IsIn(new [] { midSkip, maxSkip }), PageLength, null) , Times.Exactly(2) ); repo.Verify(r => r.GetCountAsync <Question>(null), Times.Exactly(2)); repo.VerifyNoOtherCalls(); }
public async Task TestGetQuestionsPageOne() { // Arrange var repo = new Mock <IRepositoryEnq>(); repo.Setup(r => r.GetAllAsync <Question>( null, Desc(), true, 0, PageLength, null) ).ReturnsAsync( QuestionData.TestQuestions().ToList().GetRange(0, PageLength) ); var controller = new ReadonlyApiController(repo.Object); // Act var result = await controller.GetQuestions(1); await controller.GetQuestions(0); await controller.GetQuestions(-1); // Assert Assert.IsType <OkObjectResult>(result); Assert.IsType <List <Question> >(result.Value); Assert.Equal(PageLength, (result.Value as List <Question>).Count); repo.Verify(r => r.GetAllAsync <Question> (null, Desc(), true, 0, PageLength, null), Times.Exactly(3) ); repo.VerifyNoOtherCalls(); }
private void ShowQuestion() { RemoveAnswerButtons(); if (Config.Instance.globalConfig.environment == Environment.PRODUCTION) // { randomIds.Shuffle(); } _timeRemaining = _baseTimeRemaining - (_currentRoundData.difficultyLevel * 2); timeRemainingSlider.maxValue = _timeRemaining; UpdateTimeRemainingDisplay(); QuestionData questionData = _questionPool[_questionIndex]; questionText.text = "Level " + _currentRoundData.difficultyLevel + ": " + questionData.questionText; for (int i = 0; i < questionData.answers.Length; i++) { GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); _answerButtonGameObjects.Add(answerButtonGameObject); answerButtonGameObject.transform.SetParent(answerButtonParent); answerButtonGameObject.transform.localScale = Vector3.one; AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.SetUp(questionData.answers[randomIds[i]]); } }
// private string xmlAttribute = ""; void Read() { using (XmlReader xml = XmlReader.Create(new StringReader(csvTextFile.text))) { xml.MoveToContent(); qdata = new QuestionData(); while (xml.Read()) { switch (xml.NodeType) { case XmlNodeType.Element: //Debug.Log("element => " + xml.Name); StartElement(ref qdata, xml); break; case XmlNodeType.Attribute: //Debug.Log(xml.Value); break; case XmlNodeType.Text: xmlValue = xml.Value; break; case XmlNodeType.EndElement: EndElement(ref qdata, xml); break; } } } }
public void LoadQuestionData() { if (File.Exists(QUESTION_SAVE_PATH)) { try { questionData = ScriptableObject.CreateInstance <QuestionData>(); string json = File.ReadAllText(QUESTION_SAVE_PATH); JsonUtility.FromJsonOverwrite(json, questionData); } catch (IOException ex) { Debug.LogErrorFormat("Cannot load question data file: {0} - {1}!", QUESTION_SAVE_PATH, ex.ToString()); } } else { if (defaultQuestionData != null) { questionData = Instantiate(defaultQuestionData); } else { Debug.LogError("Default Question is null."); } } }
internal void FillContents(Question question, QuestionContents contents, QuestionData data, int idx) { Question = question; QuestionContents = contents; QuestionData = data; Index = idx; }
IEnumerator GetAudioClip() { QuestionData questionData = questionPool [questionIndex]; Debug.Log(questionData.questionSound); using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(questionData.questionSound, AudioType.OGGVORBIS)) { yield return(www.Send()); if (www.isNetworkError) { Debug.Log(www.error); } else { questionClip = DownloadHandlerAudioClip.GetContent(www); Debug.Log(questionClip); questionAudioSource.clip = questionClip; //Pitch Correct and get clip length questionAudioSource.outputAudioMixerGroup.audioMixer.SetFloat("pitchParam", 1f / questionAudioSource.pitch); ClipLength = questionAudioSource.clip.length / questionAudioSource.pitch; Debug.Log("Clip:" + ClipLength + " Speed:" + questionAudioSource.pitch); //Play Audio questionAudioSource.Play(); //Show buttons after audio is done StartCoroutine(AssignAnswerButtons(ClipLength)); } } }
private void ShowQuestion() { RemoveAnswerButtons(); QuestionData questionData = questionPool[questionIndex]; questionDisplayText.text = questionData.questionText; for (int i = 0; i < questionData.answers.Length; i++) { timeRemaining = 10; GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); answerButtonGameObjects.Add(answerButtonGameObject); answerButtonGameObject.transform.SetParent(answerButtonParent); if (questionData.clip != null) { AudioClip audio = questionData.clip; source.clip = audio; source.Play(); } else { source.Stop(); } AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.Setup(questionData.answers[i]); } }
internal void FillContents(Question question) { Question = question; QuestionContents = question.QuestionContents; QuestionData = question.QuestionData; Index = 1; }
/// <summary> /// Gets a list of Answers object associated with a question /// </summary> /// <param name="theQuestion">the question being queried</param> /// <returns>a list of Answer objects</returns> public List <AnswerData> ReadAnswers(QuestionData theQuestion) { List <AnswerData> return_data = new List <AnswerData>(); if (DataReader != null) { DataReader.Close(); } SQL = "SELECT * from `answers` a INNER JOIN `rel_questions_answers` r ON r.`answer_id` = a.`answer_id` WHERE r.`question_id` = \"" + theQuestion.Id + "\";"; InitializeCommand(); OpenConnection(); DataReader = Command.ExecuteReader(); if (DataReader.HasRows) { while (DataReader.Read()) { AnswerData temp = new AnswerData(DataReader.GetUInt16("answer_id")); temp.Correct = DataReader.GetBoolean("is_correct"); temp.Text = DataReader.GetString("text"); return_data.Add(temp); } } CloseConnection(); return(return_data); }
public void OnChangeQuestionStatus(RMessage message) { QuestionData question = (QuestionData)message.Data; for (int i = 0; i < model.All_questions.Count; i++) { if (model.All_questions[i].Id == question.Id) { model.All_questions[i].Status = question.Status; break; } } for (int i = 0; i < model.Current_my_questions.Count; i++) { if (model.Current_my_questions[i].Id == question.Id) { model.Current_my_questions[i].Status = question.Status; break; } } for (int i = 0; i < model.Current_all_questions.Count; i++) { if (model.Current_all_questions[i].Id == question.Id) { model.Current_all_questions[i].Status = question.Status; break; } } QuestionsDomainsUpdated(model); }
private void ShowQuestions() { RemoveAnswerButtons(); QuestionData question = questionData[questionIndex]; questionText.text = question.questionText.ToLower(); for (int i = 0; i < question.answers.Length; i++) { GameObject answer = answerButtonPool.GetObject(); answer.transform.SetParent(answersPanel, false); answer.SetActive(true); answerButtonObjects.Add(answer); AnswerButton answerButton = answer.GetComponent <AnswerButton>(); if (i == 0) { if (roundNum == 0) { questionText.font = answerButton.star; } else { questionText.font = answerButton.lord; } } answerButton.SetUp(question.answers[i], roundNum); } }
IEnumerator AssignAnswerButtons(float time) { yield return(new WaitForSeconds(time)); // Code to execute after the delay QuestionData questionData = questionPool [questionIndex]; //Asign answers to boxes Random rnd = new Random(); //randomizes output var answersInRandomOrder = questionData.answers.OrderBy(x => randnum.Next()).ToArray(); for (int i = 0; i < answersInRandomOrder.Length; i++) { GameObject answerButtonGameObject = answerButtonObjectPool.GetObject(); answerButtonGameObjects.Add(answerButtonGameObject); answerButtonGameObject.transform.SetParent(answerButtonParent); AnswerButton answerButton = answerButtonGameObject.GetComponent <AnswerButton>(); answerButton.Setup(answersInRandomOrder[i]); } //The question is done now, show button and play bg music spokenQuestion = true; bgMusic.Play(); Vector3 replayscale = new Vector3(1, 1, 1); replay.transform.localScale = replayscale; }
public bool SaveDataToDB(IDataModel data) { try { QuestionData qd = (QuestionData)data; _db.Open(); IDbCommand cmd = _db.CreateCommand(); cmd.CommandText = QUESTION_UPDATE_ANSWER_DATA; /*Agregando Parametro para guardar respuesta de pregunta*/ IDbDataParameter bestScoreParam = cmd.CreateParameter(); bestScoreParam.ParameterName = "@answer"; bestScoreParam.Value = qd.Answer; cmd.Parameters.Add(bestScoreParam); /*Agregando Parametro para identificar la que pregunta para guardar la respuesta*/ IDbDataParameter levelParam = cmd.CreateParameter(); levelParam.ParameterName = "@questionid"; levelParam.Value = qd.QuestionID; cmd.Parameters.Add(levelParam); bool res = cmd.ExecuteNonQuery() > 0; _db.Close(); _db.Dispose(); return(res); } catch (Exception e) { Debug.LogError(e.Message); return(false); } }
public bool LoadAllDataFromDB() { try { _db.Open(); IDbCommand cmd = _db.CreateCommand(); cmd.CommandText = QUESTION_ALL_DATA; IDataReader reader = cmd.ExecuteReader(); listQuestionData = new List <QuestionData>(); while (reader.Read()) { QuestionModel = new QuestionData() { QuestionID = reader.GetInt32(0), RealmNumber = reader.GetInt32(1), Question = reader.GetString(2), Answer = reader.GetString(3) }; listQuestionData.Add(QuestionModel); } reader.Close(); _db.Close(); _db.Dispose(); return(true); } catch (Exception e) { Debug.LogError(e.Message); return(false); } }
public void UpdateQuestion(QuestionData theQuestion) { AnswerEntity temp = new AnswerEntity(); for (int i = 0; i < theQuestion.Answers.Count; i++) { temp.UpdateAnswer(theQuestion.Answers[i]); } temp.Dispose(); if (DataReader != null) { DataReader.Close(); } SQL = "UPDATE `questions` q SET q.`question` = \"" + theQuestion.Text + "\" WHERE q.`question_id` = \"" + theQuestion.Id + "\";"; OpenConnection(); InitializeCommand(); int result = ExecuteStoredProcedure(); CloseConnection(); if (result == 0) { throw new Exception("Unable to edit the question on database"); } }
public QuestionManager() { question_index = 0; question_index_for_second = 0; questionDataForFirstActivity = null; questionDataForSecondActivity = null; correct_answer_from_previous_question = ""; //questionDataForFirstActivity = QuestionData.LoadFromText(Application.dataPath+"/Game/questionDataXMLFile.xml"); //questionDataForFirstActivity = QuestionData.LoadFromText(questionDataXMLFile.xml); }
private void EndElement(ref QuestionData qData, XmlReader xml) { switch (xml.Name) { case "question": qData.questions.Add(this.q); break; case "type": this.q.type = xmlValue; break; case "section": this.q.section = xmlValue; FixTypeBasedOnSection(ref this.q); break; case "content": this.q.content = xmlValue; break; case "info": this.q.info = xmlValue; break; case "answer": answer.text = xmlValue; this.q.answers.Add(answer); break; case "correct": foreach (var ans in this.q.answers) { if (ans.option == xmlValue) { ans.correct = true; } } break; case "questions" : Debug.Log("end questions"); QuestionData.Save(targetFileName, qData); break; } xmlValue = ""; }
public static QuestionData[] Parse(string url) { HtmlDocument HD = new HtmlWeb().Load(url); List<QuestionData> data = null; HtmlNodeCollection tables = HD.DocumentNode.SelectNodes("//table[@class='MsoTableGrid']"); if (tables != null) { data = new List<QuestionData>(); foreach (HtmlNode table in tables) { var trCollection = table.ChildNodes.Where(x => x.Name == "tr").ToArray(); if (trCollection != null) { var question = new QuestionData(); try { question.ID = int.Parse(trCollection[0].ChildNodes.Where(x => x.Name == "td").ToArray()[1].ChildNodes[1].LastChild.InnerText); } catch { question.ID = 0; question.State = QuestionState.Added; } question.CorrectAnswer = trCollection[1].ChildNodes.Where(x => x.Name == "td").ToArray()[1].ChildNodes[1].LastChild.InnerText .Split(',') .Select(x => int.Parse(x)).ToArray(); var expr = trCollection[2].ChildNodes.Where(x => x.Name == "td").ToArray()[1].ChildNodes[1].ChildNodes.Where(x => x.Name == "span" || x.Name == "#text").ToArray()[0]; //p с различным содержимым, если формула то span // если текст то #text // если рисунок то span question.Question = GetValue(expr, url); List<object> answers = new List<object>(); for (int i = 3; i < trCollection.Length; i++) { expr = (i == 3 ? trCollection[i].ChildNodes.Where(x => x.Name == "td").ToArray()[1].ChildNodes[1].ChildNodes.Where(x => x.Name == "span" || x.Name == "#text").ToArray()[0] : trCollection[i].ChildNodes.Where(x => x.Name == "td").ToArray()[0].ChildNodes[1].ChildNodes.Where(x => x.Name == "span" || x.Name == "#text").ToArray()[0]); answers.Add(GetValue(expr, url)); } question.PossibleAnswers = answers.ToArray(); data.Add(question); } else throw new Exception("Ошибка в документе, изменения не будут сохранены"); } } else throw new Exception("Ошибка в документе, не найдено не одной таблицы\r\nНе меняйте структуру документа"); return data.ToArray(); }
void Convert(TextAsset csv, string targetFile, string section) { QuestionData qData = new QuestionData(); if (System.IO.File.Exists(XmlManager.XmlPath + targetFile)) { qData = QuestionData.LoadAsInstance(XmlManager.XmlPath + targetFile); if (qData == null) { Debug.Log(string.Format("Target File {0} is exist, but it's content is null", targetFile)); qData = new QuestionData(); } } StringReader reader = new StringReader(csv.text); using (CsvReader csvReader = new CsvReader(reader, false)) { int fieldCount = csvReader.FieldCount; Debug.Log(fieldCount); while (csvReader.ReadNextRecord()) { string colorCode = csvReader[0]; // Color Code pass check if ((colorCode != "B" && colorCode != "G" && colorCode != "R" && colorCode != "Y" && colorCode != "P" && colorCode != "O") || string.IsNullOrEmpty(colorCode)) { continue; } // Get the question content var qcontent = csvReader[2]; QuestionData.question question = new QuestionData.question(); question.content = qcontent.Trim(); question.section = section; question.type = GetColorNameFromCode(colorCode); qData.questions.Add(question); } } QuestionData.Save(targetFile, qData); //Debug.Log("Converted " + count); }
/// <summary> /// Returns a question list of all available questions /// in the given page range /// </summary> public QuestionData GetQuestionListForPageRange(int surveyId, int startPageNumber, int endPageNumber) { //SqlParameter[] commandParameters = new SqlParameter[] //{ new SqlParameter("@surveyid", surveyId), // new SqlParameter("@startPage", startPageNumber), // new SqlParameter("@endPage", endPageNumber) //}; ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@SurveyId", surveyId).SqlValue); commandParameters.Add(new SqlParameter("@startPage", startPageNumber).SqlValue); commandParameters.Add(new SqlParameter("@endPage", endPageNumber).SqlValue); } QuestionData dataSet = new QuestionData(); DbConnection.db.LoadDataSet("vts_spQuestionsGetPageRangeForSurvey", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
public static void Save(string name, QuestionData qData) { XmlManager.SaveInstanceAsXml(name, typeof(QuestionData), qData); }
/// <summary> /// Returns a question list with only text, questionid and display order field /// from the given survey that have at leat one selectable answer type /// </summary> /// <param name="surveyId">Survey id from which you want to retrieve the questions</param> /// <returns>A question object collection</returns> public QuestionData GetQuestionListWithSelectableAnswers(int surveyId) { QuestionData dataSet = new QuestionData(); ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@SurveyId", surveyId).SqlValue); } DbConnection.db.LoadDataSet("vts_spQuestionListWithSelectableAnswers", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
private void UpdateQuestionButton_Click(object sender, System.EventArgs e) { if (QuestionFreeTextBox.Text.Length == 0) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("MissingQuestionMessage")); } else { // Removes any single paragraph description if (QuestionFreeTextBox.Text.StartsWith("<p>") && QuestionFreeTextBox.Text.EndsWith("</p>") && QuestionFreeTextBox.Text.IndexOf("<p>", 3) < 0) { QuestionFreeTextBox.Text = QuestionFreeTextBox.Text.Substring(3, QuestionFreeTextBox.Text.Length - 7); } // creates a BE and update the question QuestionData question = new QuestionData(); QuestionData.QuestionsRow updatedQuestion = question.Questions.NewQuestionsRow(); // Set the updated fields updatedQuestion.QuestionId = _parentQuestionId; updatedQuestion.SurveyId = getSurveyId(); updatedQuestion.QuestionText = QuestionFreeTextBox.Text.Length > 3900 ? Server.HtmlDecode(QuestionFreeTextBox.Text.Substring(0, 3900)) : Server.HtmlDecode(QuestionFreeTextBox.Text); updatedQuestion.MinSelectionRequired = int.Parse(MinSelectionDropDownList.SelectedValue); updatedQuestion.MaxSelectionAllowed = int.Parse(MaxAllowedDropDownList.SelectedValue); updatedQuestion.RatingEnabled = RatingCheckbox.Checked; updatedQuestion.RandomizeAnswers = false; updatedQuestion.QuestionIdText = txtQuestionID.Text; updatedQuestion.ShowHelpText = chbShowHelpText.Checked; updatedQuestion.Alias = txtAlias.Text; updatedQuestion.HelpText = txtHelpText.Text; updatedQuestion.QuestionIdText = txtQuestionID.Text; updatedQuestion.SetQuestionGroupIDNull(); if (ddlGroup.SelectedIndex != 0) updatedQuestion.QuestionGroupID = int.Parse(ddlGroup.SelectedValue); if (ddlSubGroup.SelectedIndex != 0) updatedQuestion.QuestionGroupID = int.Parse(ddlSubGroup.SelectedValue); if (MultipleChoiceCheckbox.Checked) { updatedQuestion.SelectionModeId = (int)QuestionSelectionMode.MultiMatrix; } else { updatedQuestion.SelectionModeId = (int)QuestionSelectionMode.Matrix; } question.Questions.AddQuestionsRow(updatedQuestion); new Question().UpdateQuestion(question, LanguagesDropdownlist.SelectedValue); // Matrix can be repeated if (RepeatSectionCheckbox.Checked) { // creates a BE and update the options QuestionSectionOptionData sectionOptions = new QuestionSectionOptionData(); QuestionSectionOptionData.QuestionSectionOptionsRow updatedSectionOption = sectionOptions.QuestionSectionOptions.NewQuestionSectionOptionsRow(); // Set the updated fields updatedSectionOption.QuestionId = _parentQuestionId; updatedSectionOption.RepeatableSectionModeId = (int)RepeatableSectionMode.FullAnswers; updatedSectionOption.DeleteSectionLinkText = DeleteSectionLinkTextBox.Text; updatedSectionOption.AddSectionLinkText = AddSectionLinkTextBox.Text; sectionOptions.QuestionSectionOptions.AddQuestionSectionOptionsRow(updatedSectionOption); new Question().UpdateQuestionSectionOptions(sectionOptions, LanguagesDropdownlist.SelectedValue); } else { new Question().DeleteQuestionSectionOptions(_parentQuestionId); DeleteSectionLinkTextBox.Text = string.Empty; AddSectionLinkTextBox.Text = string.Empty; } MessageLabel.Visible = true; ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("OptionsUpdatedMessage")); BindQuestionOptions(); BindAnswerOptions(); } }
/// <summary> /// Returns all question from the given survey /// </summary> /// <param name="surveyId">Survey id from which you want to retrieve the questions</param> /// <returns>A question object collection</returns> public QuestionData GetQuestions(int surveyId, string languageCode) { //SqlParameter[] commandParameters = new SqlParameter[] //{ new SqlParameter("@SurveyId", surveyId), // new SqlParameter("@LanguageCode", languageCode) //}; ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@SurveyId", surveyId).SqlValue); commandParameters.Add(new SqlParameter("@LanguageCode", languageCode).SqlValue); } QuestionData dataSet = new QuestionData(); DbConnection.db.LoadDataSet("vts_spQuestionsGetForSurvey", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
/// <summary> /// Returns a question list with only text, questionid and display order field /// from the given survey that have at leat one selectable answer type /// </summary> /// <param name="surveyId">Survey id from which you want to retrieve the questions</param> /// <param name="pageNumber">Page from which we need the questions</param> /// <returns>A question object collection</returns> public QuestionData GetQuestionListWithSelectableAnswers(int surveyId, int pageNumber) { //SqlParameter[] commandParameters = new SqlParameter[] //{ new SqlParameter("@surveyid", surveyId), // new SqlParameter("@pageNumber", pageNumber) //}; ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@SurveyId", surveyId).SqlValue); commandParameters.Add(new SqlParameter("@pageNumber", pageNumber).SqlValue); } QuestionData dataSet = new QuestionData(); DbConnection.db.LoadDataSet("vts_spQuestionListWithSelectableAnswersForPage", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
public QuestionViewModel(QuestionData data) { _data = data; Question = _data.Question; OnPropertyChanged("UserAnswer"); }
string GenerateMatrixReport(QuestionData.QuestionsRow[] childQuestions, bool onlyAnswered, int sectionNumber) { StringBuilder matrixReport = new StringBuilder(); for (int i=0;i<childQuestions.Length;i++) { string questionText = childQuestions[i].QuestionText; questionText = questionText.Replace("<br />", Environment.NewLine + "<br />"); new PipeManager().PipeValuesInText(childQuestions[i].QuestionId, questionText, _voterAnswers.VotersAnswers, null); if (System.Web.HttpContext.Current != null) { questionText = System.Text.RegularExpressions.Regex.Replace(questionText, "<[^>]*>", " "); } string answerReport = GenerateAnswersReport(childQuestions[i].QuestionId, onlyAnswered, sectionNumber); if (answerReport.Length > 0 || !onlyAnswered) { matrixReport.Append(questionText + "<br />"+ Environment.NewLine + "<br />"); matrixReport.Append(answerReport); matrixReport.Append(Environment.NewLine + "<br />"); } } return matrixReport.ToString(); }
/// <summary> /// Get the webcontrol instance of the question BE and /// adds it to the control hierarchie /// </summary> /// <param name="question"></param> protected virtual void InsertQuestion(QuestionData.QuestionsRow question, Control container, bool enableQuestionDefaults) { QuestionItem child = QuestionItemFactory.Create(question, this.LanguageCode, this.UniqueID, this.GetRandomSeedForQuestion(), (VoterAnswersData.VotersAnswersDataTable)this.VoterAnswers.VotersAnswers.Copy(), enableQuestionDefaults); child.AnswerStyle = this.AnswerStyle; child.QuestionStyle = this.QuestionStyle; child.QuestionNumber = 0; if (child is SectionQuestion) { ((SectionQuestion)child).SectionOptionStyle = this.SectionOptionStyle; } ActiveQuestion question2 = child as ActiveQuestion; if (question2 != null) { if (this._showQuestionNumbers) { question2.QuestionNumber = this.QuestionNumber + this._questionNumbers; } question2.EnableClientSideValidation = this.EnableValidation; question2.EnableServerSideValidation = this._didPostBack; question2.ValidationMarkStyle = this.QuestionValidationMarkStyle; question2.ValidationMark = this.QuestionValidationMark; question2.ValidationMessageStyle = this.QuestionValidationMessageStyle; question2.ConfirmationMessageStyle = this.ConfirmationMessageStyle; question2.AnswerPosted += new AnswerPostedEventHandler(this.OnAnswerPost); question2.SelectionRequired += new SelectionRequiredEventHandler(this.OnSelectionRequired); question2.SelectionOverflow += new SelectionOverflowEventHandler(this.OnSelectionRequired); question2.InvalidAnswers += new InvalidAnswersEventHandler(this.OnInvalidAnswers); question2.ClientScriptGenerated += new ClientScriptGeneratedEventHandler(this.OnClientScriptGeneration); this._questionNumbers++; } MatrixQuestion question3 = child as MatrixQuestion; if (question3 != null) { question3.MatrixHeaderStyle = this.MatrixHeaderStyle; question3.MatrixItemStyle = this.MatrixItemStyle; question3.MatrixAlternatingItemStyle = this.MatrixAlternatingItemStyle; question3.MatrixStyle = this.MatrixStyle; } SectionQuestion question4 = child as SectionQuestion; if (question4 != null) { question4.EnableGridSectionClientSideValidation = this.EnableValidation; question4.EnableGridSectionServerSideValidation = this.EnableValidation; question4.SectionGridAnswersHeaderStyle = this.SectionGridAnswersHeaderStyle; question4.SectionGridAnswersItemStyle = this.SectionGridAnswersItemStyle; question4.SectionGridAnswersAlternatingItemStyle = this.SectionGridAnswersAlternatingItemStyle; question4.SectionGridAnswersStyle = this.SectionGridAnswersStyle; } container.Controls.Add(child); this.CleanVoterQuestionAnswers(child); this.OnQuestionCreated(new FormQuestionEventArgs(child)); if (!this._previousQuestionNumbering) { this.OnQuestionBound(new FormQuestionEventArgs(child)); } this._questions.Add(child); }
/// <summary> /// Update the question in the database /// </summary> /// <param name="updatedQuestion">question to update, must contain the question id</param> public void UpdateQuestion(QuestionData updatedQuestion, string languageCode) { QuestionFactory.Create().UpdateQuestion(updatedQuestion, languageCode); }
// Call this when you want a new question for the first activity public bool NewQuestionForTheFirstActivity(ref string the_question, ref Dropdown Dropdown_Menu, int the_score) { if(questionDataForFirstActivity==null) { //the path to the XML file with the data about the questions questionDataForFirstActivity = QuestionData.Load(Path.Combine (Application.dataPath, "questionDataForFirstActivity.xml")); } // gets a random question //int q = Random.Range(0, questionDataForFirstActivity.questions.Count); if ((question_index + 1) <= questionDataForFirstActivity.questions.Count) { //get a question currentQuestion = questionDataForFirstActivity.questions[question_index]; // add code here to set text values of your Question GameObject // e.g. GetComponent<SomeScript>().Text = currentQuestion.questionText; the_question = correct_answer_from_previous_question + "Question " + (question_index + 1) + " out of " + questionDataForFirstActivity.questions.Count + "; current core:" + the_score + "\n\n" + currentQuestion.questionText + "\n\n"; /* +" \n\nChoices: " + currentQuestion.answer1 + " "+currentQuestion.answer2 + " " + currentQuestion.answer3 + " " + currentQuestion.answer4 + " " + currentQuestion.answer5 + " " +currentQuestion.answer6 + " " + currentQuestion.answer7 + " " + currentQuestion.answer8 + " " +currentQuestion.answer9 + " " + currentQuestion.answer10 + "\n\n"+": " + currentQuestion.correctAnswer+"\n";*/ //Dropdown_Menu.Select(); //clear the choices in the dropdown and add the answers /*Dropdown_Menu.options.Clear(); Dropdown_Menu.value = 0; Dropdown_Menu.captionText = null;*/ Dropdown_Menu.value = 0; Dropdown_Menu.options.Clear(); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = "Make your choice!" }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer1 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer2 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer3 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer4 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer5 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer6 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer7 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer8 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer9 }); Dropdown_Menu.options.Add(new Dropdown.OptionData() { text = currentQuestion.answer10 }); //Dropdown_Menu.captionText = Dropdown_Menu.captionText; } if ((question_index + 1) <= questionDataForFirstActivity.questions.Count) {//still continue with this activity question_index++; return false; } /*else if ((question_index + 1) == questionDataForFirstActivity.questions.Count) {//still continue with this activity return false; }*/ else if ((question_index + 1) > questionDataForFirstActivity.questions.Count) {//new activity return true; } else//new activity return true; }
/// <summary> /// Returns all question listed in the library with their details /// </summary> public QuestionData GetLibraryQuestions(int libraryId, string languageCode) { QuestionData dataSet = new QuestionData(); ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@LibraryId", libraryId).SqlValue); commandParameters.Add(new SqlParameter("@LanguageCode", languageCode).SqlValue); } DbConnection.db.LoadDataSet("vts_spQuestionsGetForLibrary", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
/// <summary> /// Adds a new question to the survey specified by the survey id in the database /// </summary> /// <param name="newQuestion">Question object with information about what to add. Only Id must be ommited</param> public void AddQuestion(QuestionData newQuestion) { SqlConnection sqlConnection = new SqlConnection(DbConnection.NewDbConnectionString); DbConnection.db.UpdateDataSet(newQuestion, "Questions", this.GetInsertQuestionCommand(sqlConnection, null), new SqlCommand(), new SqlCommand(), UpdateBehavior.Transactional); }
//Call this when you want a new question for the second activity public bool NewQuestionForTheSecondActivity(ref string the_question,int the_score) { if (questionDataForSecondActivity == null) { //the path to the XML file with the data about the questions questionDataForSecondActivity = QuestionData.Load(Path.Combine (Application.dataPath, "questionDataForSecondActivity.xml")); } if ((question_index_for_second + 1) <= questionDataForSecondActivity.questions.Count) { //get a question currentQuestion = questionDataForSecondActivity.questions[question_index_for_second]; the_question =correct_answer_from_previous_question+ "\nQuestion: " + currentQuestion.questionText + " \n\nPossible answers: " + currentQuestion.answer1 + " " + currentQuestion.answer2 + " " + currentQuestion.answer3 + " " + currentQuestion.answer4 + " " + currentQuestion.answer5 + " " + currentQuestion.answer6 + " " + currentQuestion.answer7 + " " + currentQuestion.answer8 + " " + currentQuestion.answer9 + " " + currentQuestion.answer10 + " :-> " + currentQuestion.correctAnswer + "\n\nQuestion " + (question_index_for_second + 1) + " out of " +questionDataForSecondActivity.questions.Count+ "; current score:" + the_score + "\n\n"; } if ((question_index_for_second + 1) <= questionDataForSecondActivity.questions.Count) {//still continue with this activity question_index_for_second++; return false; } /*else if ((question_index + 1) == questionDataForFirstActivity.questions.Count) {//still continue with this activity return false; }*/ else if ((question_index_for_second + 1) > questionDataForSecondActivity.questions.Count) {//new activity return true; } else//new activity return true; }
/// <summary> /// Returns all question listed in the library without their child questions /// </summary> public QuestionData GetLibraryQuestionListWithoutChilds(int libraryId) { QuestionData dataSet = new QuestionData(); ArrayList commandParameters = new ArrayList(); { commandParameters.Add(new SqlParameter("@LibraryId", libraryId).SqlValue); } DbConnection.db.LoadDataSet("vts_spQuestionsGetListForLibraryWithoutChilds", dataSet, new string[] { "Questions" }, commandParameters.ToArray()); return dataSet; }
public static void Load(string name) { current = (QuestionData)XmlManager.LoadInstanceAsXml(name, typeof(QuestionData)); }
/// <summary> /// Get a web control instance of the question row /// and adds it with its options to the table /// </summary> private void AddQuestionWebControl(Table questionTable, QuestionData.QuestionsRow question) { QuestionItem questionWebControl = QuestionItemFactory.Create(question, LanguagesDropdownlist.SelectedValue, this.UniqueID, 0, null, true,true); // Set question's style // and bind the data Style questionStyle = new Style(); questionStyle.CssClass = "surveyQuestion"; Style answerStyle = new Style(); answerStyle.CssClass = "surveyAnswer"; Style markStyle = new Style(); if (questionWebControl is ActiveQuestion) { ((ActiveQuestion)questionWebControl).EnableClientSideValidation = false; ((ActiveQuestion)questionWebControl).EnableServerSideValidation = false; } if (questionWebControl is SectionQuestion) { ((SectionQuestion)questionWebControl).SectionOptionStyle.CssClass = "questionOptions"; } if (questionWebControl is MatrixQuestion) { ((MatrixQuestion)questionWebControl).MatrixHeaderStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixItemStyle = answerStyle; ((MatrixQuestion)questionWebControl).MatrixAlternatingItemStyle = answerStyle; } questionWebControl.RenderMode = ControlRenderMode.ReadOnly; questionWebControl.AnswerStyle = answerStyle; questionWebControl.QuestionStyle = questionStyle; questions.Add(questionWebControl); // Add the question and its options to the table if (NSurveyUser.Identity.IsAdmin || CheckRight(NSurveyRights.ManageLibrary, false)) { questionTable.Rows.Add(BuildQuestionOptionsRow(question)); } questionTable.Rows.Add(BuildRow(questionWebControl, "")); }
/// <summary> /// Get the current DB stats and fill /// the label with them /// </summary> private void BindData() { isScored = new Surveys().IsSurveyScored(SurveyId); TimeSpan timeTaken; _voterAnswers = new Voters().GetVoterAnswers(_voterId); if (!_voterAnswers.Voters[0].IsVoteDateNull() && !_voterAnswers.Voters[0].IsStartDateNull()) { timeTaken = _voterAnswers.Voters[0].VoteDate - _voterAnswers.Voters[0].StartDate; } else { timeTaken = new TimeSpan(0); } VoterUIDLabel.Text = _voterId.ToString(); IPAddressLabel.Text = _voterAnswers.Voters[0].IPSource; VoteDateLabel.Text = _voterAnswers.Voters[0].VoteDate.ToString(); VoterEmail.Text = _voterAnswers.Voters[0].IsEmailNull() ? GetPageResource("AnonymousVoteInfo") : _voterAnswers.Voters[0].Email; VoterUserName.Text = _voterAnswers.Voters[0].IsContextUserNameNull() ? GetPageResource("ContextUserNameDisabled") : _voterAnswers.Voters[0].ContextUserName; VoterLanguageValueLabel.Text = _voterAnswers.Voters[0].IsLanguageCodeNull() || _voterAnswers.Voters[0].LanguageCode.Length == 0 ? GetPageResource("LanguageUndefined") : _voterAnswers.Voters[0].LanguageCode; TimeToTakeSurveyLabel.Text = string.Format("{0} {1}, {2} secs.", timeTaken.Minutes.ToString(), GetPageResource("MinutesInfo"), timeTaken.Seconds.ToString()); WebSecurityAddInCollection securityAddIns = WebSecurityAddInFactory.CreateWebSecurityAddInCollection(new SecurityAddIns().GetWebSecurityAddIns(SurveyId), ViewState, null); NameValueCollection addInVoterData; for (int i=0;i<securityAddIns.Count;i++) { addInVoterData = securityAddIns[i].GetAddInVoterData(_voterId); if (addInVoterData != null) { // Creates a new addin voter details page SecurityAddInVoterReportControl addInVoterControl = (SecurityAddInVoterReportControl)LoadControl("UserControls/SecurityAddInVoterReportControl.ascx"); addInVoterControl.AddInDescription = securityAddIns[i].Description; addInVoterControl.AddInVoterData = addInVoterData; AddInVoterDataPlaceHolder.Controls.Add(addInVoterControl); } } _questionData = new Questions().GetQuestionHierarchy(SurveyId); QuestionsDataGrid.DataSource = GetParentQuestions(); QuestionsDataGrid.DataKeyField = "QuestionId"; QuestionsDataGrid.DataBind(); if (isScored) { VoterScoreTotalLabel.Text = GetPageResource("VoterScoreTotalLabel") + _totalScore.ToString(); } }
private TableRow BuildQuestionOptionsRow(QuestionData.QuestionsRow question) { LibraryQuestionOptionsControl libraryQuestionOptionsControl = (LibraryQuestionOptionsControl)LoadControl("UserControls/LibraryQuestionOptionsControl.ascx"); libraryQuestionOptionsControl.Question = question; libraryQuestionOptionsControl.EventOrderUp += new CommandEventHandler(OnOrderUp); libraryQuestionOptionsControl.EventOrderDown += new CommandEventHandler(OnOrderDown); libraryQuestionOptionsControl.QuestionId = question.QuestionId.ToString(); //libraryQuestionOptionsControl.QuestionHelpText = question.q return BuildRow(libraryQuestionOptionsControl, ""); }
/// <summary> /// Adds a new question to the poll specified by the poll id in the database /// </summary> /// <param name="newQuestion">Question object with information about what to add. Only Id must be ommited</param> public void AddQuestion(QuestionData newQuestion) { QuestionFactory.Create().AddQuestion(newQuestion); }
/// <summary> /// Update the question in the database /// </summary> /// <param name="updatedQuestion">question to update, must contain the question id</param> public void UpdateQuestion(QuestionData updatedQuestion, string languageCode) { SqlConnection connection = new SqlConnection(DbConnection.NewDbConnectionString); SqlCommand insertCommand = new SqlCommand("vts_spQuestionUpdate", connection); insertCommand.CommandType = CommandType.StoredProcedure; insertCommand.Parameters.Add(new SqlParameter("@LanguageCode", languageCode)); insertCommand.Parameters.Add(new SqlParameter("@QuestionId", SqlDbType.Int, 4, "QuestionId")); insertCommand.Parameters.Add(new SqlParameter("@SelectionModeId", SqlDbType.Int, 4, "SelectionModeId")); insertCommand.Parameters.Add(new SqlParameter("@LayoutModeId", SqlDbType.Int, 4, "LayoutModeId")); insertCommand.Parameters.Add(new SqlParameter("@ColumnsNumber", SqlDbType.Int, 4, "ColumnsNumber")); insertCommand.Parameters.Add(new SqlParameter("@QuestionText", SqlDbType.NVarChar, 0xfa0, "QuestionText")); insertCommand.Parameters.Add(new SqlParameter("@QuestionPipeAlias", SqlDbType.NVarChar, 0xff, "QuestionPipeAlias")); insertCommand.Parameters.Add(new SqlParameter("@MinSelectionRequired", SqlDbType.Int, 4, "MinSelectionRequired")); insertCommand.Parameters.Add(new SqlParameter("@MaxSelectionAllowed", SqlDbType.Int, 4, "MaxSelectionAllowed")); insertCommand.Parameters.Add(new SqlParameter("@RandomizeAnswers", SqlDbType.Bit, 1, "RandomizeAnswers")); insertCommand.Parameters.Add(new SqlParameter("@RatingEnabled", SqlDbType.Bit, 1, "RatingEnabled")); insertCommand.Parameters.Add(new SqlParameter("@QuestionGroupId", SqlDbType.Int, 4, "QuestionGroupId")); insertCommand.Parameters.Add(new SqlParameter("@ShowHelpText", SqlDbType.Bit, 1, "ShowHelpText")); insertCommand.Parameters.Add(new SqlParameter("@HelpText", SqlDbType.NVarChar, 4000, "HelpText")); insertCommand.Parameters.Add(new SqlParameter("@Alias", SqlDbType.NVarChar, 255, "Alias")); insertCommand.Parameters.Add(new SqlParameter("@QuestionIdText", SqlDbType.NVarChar, 255, "QuestionIdText")); DbConnection.db.UpdateDataSet(updatedQuestion, "Questions", insertCommand, new SqlCommand(), insertCommand, UpdateBehavior.Transactional); }
public static QuestionItem Create(QuestionData.QuestionsRow question, string languageCode, string parentControlUniqueID, int questionRandomSeed, VoterAnswersData.VotersAnswersDataTable voterAnswersState, bool enableAnswerDefaults,bool isDesignMode=false) { QuestionItem item; if ((question.TypeAssembly.Length == 0) || (question.TypeAssembly == null)) { throw new ApplicationException("Could not create an instance because the question data has no assembly type specified"); } try { item = (QuestionItem) Assembly.Load(question.TypeAssembly).CreateInstance(question.TypeNameSpace); } catch (InvalidCastException) { throw new InvalidCastException("Concrete type " + question.TypeNameSpace + " is not a child of the questionitem abstract class"); } catch (NullReferenceException) { throw new InvalidCastException("specfied type " + question.TypeNameSpace + " could not be found in the specifed assembly " + question.TypeAssembly); } item.ID = "Question" + question.QuestionId.ToString(); item.QuestionId = question.QuestionId; item.Text = new PipeManager().PipeValuesInText(question.QuestionId, question.QuestionText+ ( (question.ShowHelpText && !isDesignMode )?( question.IsHelpTextNull()?string.Empty: HelpTextInSmallFont(question.HelpText)):string.Empty)//JJSurveyBoxChange , voterAnswersState, languageCode) ; item.LanguageCode = languageCode; item.QuestionId_Text = question.QuestionIdText; item.HelpText = question.HelpText; SectionQuestion question2 = item as SectionQuestion; if ((question2 != null) && (question.RepeatableSectionModeId != 0)) { question2.RepeatMode = (RepeatableSectionMode) question.RepeatableSectionModeId; question2.MaxSections = question.MaxSections; question2.GridAnswers = new Questions().GetQuestionSectionGridAnswers(question.QuestionId); if ((question.AddSectionLinkText != null) && (question.AddSectionLinkText.Length > 0)) { question2.AddSectionLinkText = question.AddSectionLinkText; } if ((question.DeleteSectionLinkText != null) && (question.DeleteSectionLinkText.Length > 0)) { question2.DeleteSectionLinkText = question.DeleteSectionLinkText; } if ((question.EditSectionLinkText != null) && (question.EditSectionLinkText.Length > 0)) { question2.EditSectionLinkText = question.EditSectionLinkText; } if ((question.UpdateSectionLinkText != null) && (question.UpdateSectionLinkText.Length > 0)) { question2.UpdateSectionLinkText = question.UpdateSectionLinkText; } } SingleQuestion question3 = item as SingleQuestion; if (question3 != null) { question3.VoterAnswersState = voterAnswersState; question3.EnableAnswersDefault = enableAnswerDefaults; question3.MinSelectionRequired = question.MinSelectionRequired; question3.MaxSelectionAllowed = question.MaxSelectionAllowed; question3.ColumnsNumber = question.ColumnsNumber; question3.LayoutMode = question.IsLayoutModeIdNull() ? QuestionLayoutMode.Vertical : ((QuestionLayoutMode) question.LayoutModeId); if (question.RandomizeAnswers) { question3.DataSource = new Answers().GetRandomAnswers(question.QuestionId, questionRandomSeed, languageCode); return question3; } question3.DataSource = new Answers().GetAnswers(question.QuestionId, languageCode); return question3; } MatrixQuestion question4 = item as MatrixQuestion; if (question4 != null) { question4.VoterAnswersState = voterAnswersState; question4.EnableAnswersDefault = enableAnswerDefaults; question4.MinSelectionRequired = question.MinSelectionRequired; question4.MaxSelectionAllowed = question.MaxSelectionAllowed; question4.DataSource = new Questions().GetMatrixChildQuestions(question.QuestionId, languageCode); return question4; } return item; }
/// <summary> /// Creates a new question entity with all /// required default values /// </summary> /// <returns></returns> private QuestionData GetDefaultQuestion() { QuestionData data = new QuestionData(); QuestionData.QuestionsRow row = data.Questions.NewQuestionsRow(); row.ColumnsNumber = 0; row.MinSelectionRequired = 0; row.MaxSelectionAllowed = 0; row.RandomizeAnswers = false; row.RatingEnabled = false; row.QuestionPipeAlias = null; data.Questions.AddQuestionsRow(row); return data; }