Example #1
0
        /// <summary>
        /// Supprime un mot-clé par son id
        /// </summary>
        /// <param name="idMotCle">Id du mot-clé</param>
        /// <returns>Message</returns>
        public bool DeleteMotCleByIdMotCle(int idMotCle)
        {
            MotsClesDatas motsCd;

            if (Qcm.DictMotCle.TryGetValue(idMotCle, out motsCd))
            {
                if (motsCd.ModeDatabase != Modes.Create)
                {
                    DictObjetDelete.Add(idMotCle, motsCd);
                }
                return(Qcm.DictMotCle.Remove(idMotCle));
            }
            return(false);
        }
Example #2
0
        /// <summary>
        /// Supprime une réponse par son id et l'id de la question
        /// </summary>
        /// <param name="idQuestion">Id de la question</param>
        /// <param name="idReponse">Id de la réponse</param>
        /// <returns>Vrai si réussi, sinon false</returns>
        public bool DeleteReponseByIdReponse(int idQuestion, int idReponse)
        {
            QuestionDatas qm;

            if (Qcm.DictQuestionModele.TryGetValue(idQuestion, out qm))
            {
                ReponseDatas rm;
                qm.DictReponseModele.TryGetValue(idReponse, out rm);
                if (rm.ModeDatabase != Modes.Create)
                {
                    DictObjetDelete.Add(idReponse, rm);
                }
                qm.DictReponseModele.Remove(idReponse);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #3
0
        /// <summary>
        /// Supprime une question par son id
        /// </summary>
        /// <param name="idQuestion">Id de la question</param>
        /// <returns>True si réussi, false sinon</returns>
        public bool DeleteQuestionByIdQuestion(int idQuestion)
        {
            //_listDeletedQuestion.Add(idQuestion);
            QuestionDatas question;

            if (Qcm.DictQuestionModele.TryGetValue(idQuestion, out question))
            {
                if (Qcm.DictQuestionModele.Remove(idQuestion))
                {
                    if (question.ModeDatabase != Modes.Create)
                    {
                        DictObjetDelete.Add(idQuestion, question);
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(false);
        }
Example #4
0
        /// <summary>
        /// Sauvegarde dans la base de données
        /// </summary>
        public void Save()
        {
            /* Pour voir la progression dans la sortie: string saved = "QCM: " + Qcm.IdQCM + ", " + Qcm.NomQCM + ", Mode: " + Qcm.ModeDatabase + Environment.NewLine;*/
            string error = "";
            int    idQCM = 0;

            try
            {
                if (Qcm.ModeDatabase == Modes.Create)
                {
                    idQCM = Dao.InsertQCM(Qcm.NomQCM, Qcm.Level);
                }
                else if (Qcm.ModeDatabase == Modes.Update)
                {
                    Dao.UpdateQCMByIdQCM(Qcm.IdQCM, Qcm.NomQCM, Qcm.Level);
                }
                if (idQCM == 0)
                {
                    idQCM = Qcm.IdQCM;
                }
                Qcm.ModeDatabase = Modes.AddedInBase;

                foreach (var item in Qcm.DictMotCle)
                {
                    try
                    {
                        if (item.Value.ModeDatabase == Modes.Create)
                        {
                            Dao.InsertMotCle(idQCM, item.Value.TextMotCle);
                        }
                        else if (item.Value.ModeDatabase == Modes.Update)
                        {
                            Dao.UpdateMotCleByIdMotCle(item.Key, item.Value.TextMotCle);
                        }
                        /* Pour voir la progression dans la sortie: saved += "IdMotCle: " + item.Key + ", motcle: " + item.Value.TextMotCle + ", Mode: " + item.Value.ModeDatabase + Environment.NewLine;*/
                        item.Value.ModeDatabase = Modes.AddedInBase;
                    }
                    catch (Exception ex)
                    {
                        error = ex.Message;
                    }
                }
                foreach (var item in Qcm.DictQuestionModele)
                {
                    try
                    {
                        /* Pour voir la progression dans la sortie: saved += "idQuestion: " + item.Key + ", question: " + item.Value.Question + ", Mode: " + item.Value.ModeDatabase + Environment.NewLine;*/
                        int idQuestion = 0;
                        if (item.Value.ModeDatabase == Modes.Create)
                        {
                            idQuestion = Dao.InsertQuestion(idQCM, item.Value.Question);
                        }
                        else if (item.Value.ModeDatabase == Modes.Update)
                        {
                            Dao.UpdateQuestionByIdQuestion(item.Key, item.Value.Question);
                        }
                        item.Value.ModeDatabase = Modes.AddedInBase;
                        if (idQuestion == 0)
                        {
                            idQuestion = item.Key;
                        }
                        foreach (var item2 in item.Value.DictReponseModele)
                        {
                            try
                            {
                                if (item2.Value.ModeDatabase == Modes.Create)
                                {
                                    Dao.InsertReponses(idQuestion, item2.Value.Reponse, item2.Value.BonneReponse);
                                }
                                else if (item2.Value.ModeDatabase == Modes.Update)
                                {
                                    Dao.UpdateReponseByIdReponse(idQuestion, item2.Key, item2.Value.Reponse, item2.Value.BonneReponse);
                                }
                                /* Pour voir la progression dans la sortie: saved += "idReponse: " + item2.Key + ", reponse: " + item2.Value.Reponse + ", Mode: " + item2.Value.ModeDatabase + Environment.NewLine; */
                                item2.Value.ModeDatabase = Modes.AddedInBase;
                            }
                            catch (Exception ex)
                            {
                                error = ex.Message;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        error = ex.Message;
                    }
                }

                foreach (KeyValuePair <int, object> item in DictObjetDelete)
                {
                    try
                    {
                        if (item.Value is QCMDatas)
                        {
                            DeleteQCM();
                        }
                        else if (item.Value is QuestionDatas)
                        {
                            Dao.DeleteQuestionByIdQuestion(item.Key);
                        }
                        else if (item.Value is ReponseDatas)
                        {
                            Dao.DeleteReponsesByIdReponse(item.Key);
                        }
                        else if (item.Value is MotsClesDatas)
                        {
                            Dao.DeleteMotCleByIdMotCle(item.Key);
                        }
                        /* Pour voir la progression dans la sortie: saved += "idObjetDelete: " + item.Key + ", reponse: " + item.Value + Environment.NewLine; */
                    }
                    catch (Exception ex)
                    {
                        error = ex.Message;
                    }
                }
                DictObjetDelete.Clear();
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }
            /* Pour voir la progression dans la sortie: Console.WriteLine(saved); */
        }