private void cmdLoadQuestionnaire_Click(object sender, EventArgs e) { fLoadQuestionnaire loadForm = new fLoadQuestionnaire(Teacher); loadForm.ShowDialog(); if (loadForm.ValidatedData) { QuestionnaireSession = loadForm.QuestionnaireSession; ShowQuestionnaireData(); } }
private void cmdConfirm_Click(object sender, EventArgs e) { if (ValidatedData = dblwQuestionnaireSessions.SelectedItems.Count > 0) { QuestionnaireSession = (QuestionnaireSession)dblwQuestionnaireSessions.SelectedItems[0].Tag; Close(); } else { MessageBox.Show("Seleziona un questionario precedente prima di procedere.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public fCurrentQuestionnaireSession(QuestionnaireSession qSession, Teacher teacher) { InitializeComponent(); ControlsUtilities.ApplyAppIcon(this); Text += teacher.FullName; ElapsedTime = TimeSpan.FromSeconds(0); QuestionnaireSession = qSession; Teacher = teacher; Submissions = new BindingList <QuestionnaireSubmission>(); IsActiveSession = true; dgwSubmissions.DataSource = Submissions; Watcher = new FileSystemWatcher(); Watcher.SynchronizingObject = this; Watcher.Path = Path.Combine(AppConfiguration.questionnaireSessionsFolderPath, QuestionnaireSession.FilesystemDirectoryName); Watcher.NotifyFilter = NotifyFilters.LastWrite; Watcher.Filter = "*.*"; Watcher.Changed += new FileSystemEventHandler(FileAddedHandler); Watcher.EnableRaisingEvents = true; }
private async Task <bool> TryParseQuestionnaireSessionDataAsync() { QuestionnaireOptions options = new QuestionnaireOptions(); options.QuestionsGenerationMethod = (QElementGenerationMethod)cboQuestionsGenerationMethod.SelectedItem; int answersPerQuestion = 0; double correctAnswerScore = 0; double emptyAnswerScore = 0; double maxmiumGrade = 0; double minimumGrade = 0; int questionsNumber = 0; double wrongAnswerScore = 0; Topic topic = (Topic)cboTopic.SelectedItem; Questionnaire questionnaire = new Questionnaire(topic, options); if (options.QuestionsGenerationMethod != QElementGenerationMethod.RANDOM) { if (dblswQuestions.SelectedItems.Count > 0) { foreach (ListViewItem item in dblswQuestions.Items) { questionnaire.Questions.Add((Question)item.Tag); } } else { return(false); } } bool notNull = Helpers.IsValuedString(txtAnswersPerQuestion.Text) && Helpers.IsValuedString(txtCorrectAnswerScore.Text) && Helpers.IsValuedString(txtEmptyAnswerScore.Text) && Helpers.IsValuedString(txtMaximumGrade.Text) && Helpers.IsValuedString(txtMinimumGrade.Text) && Helpers.IsValuedString(txtQuestionsNumber.Text) && Helpers.IsValuedString(txtWrongAnswerScore.Text) && Helpers.IsValuedString(lblSessionDescription.Text); if (notNull) { bool validNumbers = int.TryParse(txtAnswersPerQuestion.Text, out answersPerQuestion) && double.TryParse(txtCorrectAnswerScore.Text, out correctAnswerScore) && double.TryParse(txtEmptyAnswerScore.Text, out emptyAnswerScore) && double.TryParse(txtMaximumGrade.Text, out maxmiumGrade) && double.TryParse(txtMinimumGrade.Text, out minimumGrade) && int.TryParse(txtQuestionsNumber.Text, out questionsNumber) && double.TryParse(txtWrongAnswerScore.Text, out wrongAnswerScore); if (validNumbers) { bool validSigns = answersPerQuestion > 0 && correctAnswerScore > 0 && emptyAnswerScore <= 0 && maxmiumGrade >= 0 && questionsNumber > 0 && wrongAnswerScore < 0; if (validSigns) { List <Student> involvedStudents = await Class.FromData(cboSchoolYear.Text, cboCourse.Text).GetStudentsAsync(); options.MaximumGrade = maxmiumGrade; options.AnswersPerQuestion = answersPerQuestion; options.CorrectAnswerScore = correctAnswerScore; /**/ options.WrongAnswerScore = wrongAnswerScore; /**/ options.EmptyAnswerScore = emptyAnswerScore; options.MinimumGrade = minimumGrade; options.QuestionsNumber = questionsNumber; bool enoughAnswers = questionnaire.Questions.Where(x => x.Answers.Count < answersPerQuestion).Count() == 0; bool enoughQuestions = options.QuestionsGenerationMethod != QElementGenerationMethod.RANDOM ? questionnaire.Questions.Count >= options.QuestionsNumber : (await questionnaire.Topic.GetQuestionsAsync()).Count >= options.QuestionsNumber; bool enoughStudents = involvedStudents.Count > 0; bool validConfiguration = enoughAnswers && enoughQuestions && enoughStudents; if (validConfiguration) { QuestionnaireSession = new QuestionnaireSession(questionnaire, involvedStudents, lblSessionDescription.Text); return(true); } } } } return(false); }