/// <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); }
/// <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); } }
/// <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); }
/// <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); */ }