//-------------------------------------------------- private void m_lnkRestore_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (!m_bCanRestore) { return; } DataTable table = m_grilleProprietes.DataSource as DataTable; if (table != null && m_objetAffiche != null && m_valeursAffichees != null) { using (CContexteDonnee contexte = new CContexteDonnee(m_objetAffiche.ContexteDonnee.IdSession, true, false)) { CObjetDonneeAIdNumerique objetAModifier = contexte.GetObjetInThisContexte(m_objetAffiche) as CObjetDonneeAIdNumerique; List <DataRow> rowsSelected = new List <DataRow>(); foreach (DataRow row in table.Rows) { if ((bool)row[m_strColChecked]) { rowsSelected.Add(row); } } CResultAErreur result = CResultAErreur.True; if (rowsSelected.Count > 0) { objetAModifier.BeginEdit(); foreach (DataRow row in rowsSelected) { IChampPourVersion champ = row[m_strColObjetHistorique] as IChampPourVersion; if (champ != null) { IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(champ.TypeChampString); if (journaliseur != null) { result = journaliseur.AppliqueValeur(m_version.Id, champ, objetAModifier, m_valeursAffichees[champ]); if (!result) { break; } } } } if (result) { result = objetAModifier.CommitEdit(); } if (!result) { objetAModifier.CancelEdit(); CFormAlerte.Afficher(result.Erreur); } else { InitForObjet(objetAModifier, m_version); } } } } }
//--------------------------------------------- /// <summary> /// Retourne la valeur réelle, (en fonction du journaliseur) /// </summary> public object GetValeur() { IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(TypeChamp); if (journaliseur != null) { return(journaliseur.GetValeur(this)); } return(null); }
//------------------------------------------------------- public CResultAErreur AppliqueModification(CObjetDonneeAIdNumerique objet) { CResultAErreur result = CResultAErreur.True; IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(TypeChamp); if (journaliseur == null) { result.EmpileErreur(I.T("Can not apply modifications for field @1 (@2)|30002", FieldKey, TypeChamp)); return(result); } result = journaliseur.AppliqueValeur(VersionObjet.VersionDonnees.Id, Champ, objet, GetValeur()); return(result); }
public static void RegisterJournaliseur(IJournaliseurDonneesChamp journaliseur) { m_tableTypeChampToJournaliseur[journaliseur.TypeChamp] = journaliseur; }