Пример #1
0
        /// <summary>
        /// Permet de transformer les marqueurs et en faire un Latex.
        /// </summary>
        /// <param name="nameOfDocument">Nom du document</param>
        /// <param name="textLatex">Texte du latex (avant)</param>
        /// <param name="listIds">Liste des ids des QCMs</param>
        /// <returns>Texte transformé</returns>
        public static string ExportLatex(string nameOfDocument, string textLatex, List <int> listIds)
        {
            //https://stackoverflow.com/questions/8928601/how-can-i-split-a-string-with-a-string-delimiter
            string[] str = textLatex.Split(new string[] { MARQUE_LOOP_QUESTION, MARQUE_LOOP_BAD_ANSWER, MARQUE_LOOP_GOOD_ANSWER }, StringSplitOptions.None);
            if (str.Length == 7)
            {
                //https://msdn.microsoft.com/en-us/library/system.environment.username%28v=vs.110%29.aspx
                string stringLatex = str[0].Replace(MARQUE_AUTHOR, ValidateLatexString(Environment.UserName)).Replace(MARQUE_TITLE, ValidateLatexString(nameOfDocument));
                foreach (int idQCM in listIds)
                {
                    QCMController _controller = new QCMController(idQCM);
                    foreach (KeyValuePair <int, QuestionDatas> question in _controller.GetQuestions())
                    {
                        stringLatex += str[1].Replace(MARQUE_TEXT_QUESTION, ValidateLatexString(question.Value.Question));
                        foreach (KeyValuePair <int, ReponseDatas> reponse in question.Value.DictReponseModele)
                        {
                            if (!reponse.Value.BonneReponse)
                            {
                                stringLatex += str[2].Replace(MARQUE_TEXT_BAD_ANSWER, ValidateLatexString(reponse.Value.Reponse));
                            }
                            else
                            {
                                stringLatex += str[4].Replace(MARQUE_TEXT_GOOD_ANSWER, ValidateLatexString(reponse.Value.Reponse));
                            }
                        }
                        stringLatex += str[5];
                    }
                }

                stringLatex += str[6];
                return(stringLatex);
            }
            return(null);
        }
Пример #2
0
 /// <summary>
 /// Permet de raffraichir la DataGridView "dgvQCM"
 /// </summary>
 public void RefreshDataGridView()
 {
     dgvQCM.Rows.Clear();
     foreach (KeyValuePair <int, string> item in QCMController.GetListQCM())
     {
         dgvQCM.Rows.Add(new string[] { item.Key.ToString(), item.Value });
     }
 }
Пример #3
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="idQCM">Id du QCM</param>
 public FrmCreateQuestionReponse(QCMController qcmController)
 {
     InitializeComponent();
     QcmController = qcmController;
     TbxReponseTab = new TextBox[] { tbxReponse1, tbxReponse2, tbxReponse3, tbxReponse4, tbxReponse5, tbxReponse6 };
     RbReponseTab  = new RadioButton[] { rbBonneReponse1, rbBonneReponse2, rbBonneReponse3, rbBonneReponse4, rbBonneReponse5, rbBonneReponse6 };
     lblQCM.Text   = TEXT_QCM + QcmController.GetTitreQCM();
     ReturnDatas   = new Dictionary <string, Dictionary <string, bool> >();
 }
Пример #4
0
 /// <summary>
 /// Charge le modèle s'il existe et l'écrit dans la propriété Text de la TextBox.
 /// </summary>
 /// <param name="modelName"></param>
 private void LoadModel(string modelName)
 {
     //https://msdn.microsoft.com/en-us/library/system.environment.specialfolder%28v=vs.110%29.aspx
     if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\" + FilenameModel + "\\" + modelName))
     {
         if (!QCMController.GetListModeles().Contains(modelName))
         {
             MessageBox.Show("Ce modèle n'existe pas !");
             return;
         }
     }
     tbxContent.Text = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\" + FilenameModel + "\\" + modelName);
 }
Пример #5
0
 /// <summary>
 /// S'effectue lors d'un clic sur le bouton "btnAfficherQCM"
 /// </summary>
 /// <param name="sender">Objet</param>
 /// <param name="e">Evenement</param>
 private void btnAfficherQCM_Click(object sender, EventArgs e)
 {
     if (dgvQCM.SelectedRows.Count > 0)
     {
         for (int i = 0; i < dgvQCM.SelectedRows.Count; i++)
         {
             if (dgvQCM.SelectedRows[i].Cells[0].Value != null)
             {
                 QCMController.OpenFormContents(Convert.ToInt32(dgvQCM.SelectedRows[i].Cells[0].Value));
             }
         }
     }
 }
Пример #6
0
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="listModels">Liste des modèles</param>
        public FrmExportSelect(List <string> listModels)
        {
            InitializeComponent();
            ListModel = listModels;

            foreach (string item in listModels)
            {
                lsbModeles.Items.Add(item);
            }

            foreach (KeyValuePair <int, string> item in QCMController.GetListQCM())
            {
                tvQCM.Nodes.Add(item.Key.ToString(), item.Value);
            }
        }
Пример #7
0
        /// <summary>
        /// Constructeur
        /// </summary>
        /// <param name="listSelectedIdQCMs">Liste des Ids de QCM à utiliser dans l'exportation</param>
        /// <param name="marques">Marques utilisées pour faire le Latex (donnée seulement pour les mettre dans la ListBox située à gauche de la vue)</param>
        /// <param name="filenameModel">Chemin d'accès des modèles</param>
        /// <param name="modelName">Nom du modèle utilisé pour l'exportation</param>
        public FrmExport(List <int> listSelectedIdQCMs, string[] marques, string filenameModel, string modelName)
        {
            InitializeComponent();
            FilenameModel = filenameModel;

            this.ListSelectedIdQCMs = listSelectedIdQCMs;
            if (modelName != null)
            {
                LoadModel(modelName);
            }

            foreach (string item in QCMController.GetListModeles())
            {
                tsmiModel.DropDownItems.Add(item, null, ExportToolStripMenuItem_Click);
            }

            lsbMarkers.Items.AddRange(marques);
        }
Пример #8
0
        /// <summary>
        /// Evenement effectué lors d'un clic sur le bouton "btnExport"
        /// </summary>
        /// <param name="sender">Objet</param>
        /// <param name="e">Evenement</param>
        private void btnExport_Click(object sender, EventArgs e)
        {
            string stringLatex = QCMController.ExportLatex(tbxNameOfDocument.Text, tbxContent.Text, ListSelectedIdQCMs);

            if (stringLatex != null)
            {
                Sfd        = new SaveFileDialog();
                Sfd.Filter = "Format texte (*.txt) | *.txt";
                if (Sfd.ShowDialog() == DialogResult.OK)
                {
                    if (Sfd.FileName.Split('.').Last() != "txt")
                    {
                        Sfd.FileName += ".txt";
                    }
                    File.WriteAllText(Sfd.FileName, stringLatex);
                }
            }
            else
            {
                MessageBox.Show("Le latex est incorrecte, merci de prendre exemple sur le Latex déjà créé !");
            }
        }
Пример #9
0
 /// <summary>
 /// Constructeur
 /// </summary>
 public FrmCreateQCM()
 {
     InitializeComponent();
     QcmController = new QCMController(0);
 }
Пример #10
0
 /// <summary>
 /// S'effectue lors d'un clic sur le bouton "btnExport"
 /// </summary>
 /// <param name="sender">Objet</param>
 /// <param name="e">Evenement</param>
 private void btnExport_Click(object sender, EventArgs e)
 {
     QCMController.Export();
 }
Пример #11
0
 /// <summary>
 /// S'effectue lors d'un clic sur le ToolStripMenuItem "helpToolStripMenuItem"
 /// </summary>
 /// <param name="sender">Objet</param>
 /// <param name="e">Evenement</param>
 public void helpToolStripMenuItem_Click(object sender, EventArgs e)
 {
     QCMController.Help();
 }
Пример #12
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="idQCM">Id du QCM affiché</param>
 public FrmInformations(int idQCM)
 {
     QcmController = new QCMController(idQCM);
     IdQCM         = idQCM;
     LoadInformations();
 }
Пример #13
0
 /// <summary>
 /// Constructeur
 /// </summary>
 /// <param name="controller">Controlleur</param>
 public FrmInformations(QCMController controller)
 {
     QcmController = controller;
     IdQCM         = QcmController.GetIdQCM();
     LoadInformations();
 }