Exemplo n.º 1
0
        //----------------------------------------------------------------------------
        public static CResultAErreur TraitementAvantSauvegarde(IObjetAFilsACoordonnees objet)
        {
            CResultAErreur result = CResultAErreur.True;

            if (((CObjetDonnee)objet).Row.RowState == DataRowState.Deleted)
            {
                return(result);
            }
            CObjetDonnee objDonnee = (CObjetDonnee)objet;
            DataRow      row       = objDonnee.Row;

            if (row.RowState == DataRowState.Added)
            {
                if (objet.ParametrageCoordonneesPropre == null)
                {
                    CParametrageSystemeCoordonnees parametrage = objet.ParametrageCoordonneesApplique;
                    if (parametrage != null)
                    {
                        parametrage = (CParametrageSystemeCoordonnees)parametrage.Clone(false);
                        parametrage.ObjetASystemeDeCoordonnees = objet;
                    }
                }
                if (objet.OptionsControleCoordonneesPropre == null)
                {
                    objet.OptionsControleCoordonneesPropre = objet.OptionsControleCoordonneesApplique;
                }
            }
            if (row.RowState == DataRowState.Modified)
            {
                DataRowVersion oldVers = objDonnee.VersionToReturn;
                objDonnee.VersionToReturn = DataRowVersion.Original;
                EOptionControleCoordonnees?oldOpt = objet.OptionsControleCoordonneesApplique;
                objDonnee.VersionToReturn = oldVers;
                EOptionControleCoordonnees?newOpt = objet.OptionsControleCoordonneesApplique;
                if (newOpt != oldOpt)
                {
                    result = objet.VerifieCoordonneesFils();
                    if (!result)
                    {
                        return(result);
                    }
                }
            }
            return(result);
        }