示例#1
0
 //-----------------------------------------------
 public void RegisterDbKey(CDbKey key)
 {
     if (key != null)
     {
         m_setKeys.Add(key);
     }
 }
示例#2
0
 //----------------------------------------------------
 public void TraiteDbKey(ref CDbKey key)
 {
     CDbKey.SerializeKey(this, ref key);
     if (Mode == ModeSerialisation.Lecture)
     {
         TrackDbKeyReaded(key);
     }
 }
示例#3
0
 //----------------------------------------------------
 public void TrackDbKeyReaded(string strUniversalId)
 {
     if (strUniversalId != null)
     {
         CDbKey key = CDbKey.GetNewDbKeyOnUniversalIdANePasUtiliserEnDehorsDeCDbKeyAddOn(strUniversalId);
         TrackDbKeyReaded(key);
     }
 }
示例#4
0
 //----------------------------------------------------
 public void TrackDbKeyReaded(CDbKey key)
 {
     if (key != null)
     {
         foreach (CDbKeyReaderTracker tracker in m_listeDbKeyTrackers)
         {
             tracker.RegisterDbKey(key);
         }
     }
 }
示例#5
0
        //----------------------------------------------------
        public static CDbKey GetNewDbKeyOnUniversalIdANePasUtiliserEnDehorsDeCDbKeyAddOn(string strIdUniversel)
        {
            CDbKey key = new CDbKey(strIdUniversel);

            //On ne doit pas stocker l'ancien ID
            //car sinon le hashcode n'est pas le bon, donc, on ne retrouve plus
            //la valeur dans un dictionnaire !
            //C'est pour cela que les CDbkey old sont convertis en DbKey à UniversalID
            //à la lecture
            return(key);
        }
示例#6
0
        //----------------------------------------------------
        internal static void ReadFromOldId(C2iSerializer ser, ref CDbKey key)
        {
            int nTmp = 0;

            ser.TraiteInt(ref nTmp);
            if (nTmp >= 0)
            {
                key = new CDbKey(nTmp);
            }
            return;
        }
示例#7
0
 //----------------------------------------------------
 public void ReadDbKeyFromOldId(ref CDbKey key, Type typeObjet)
 {
     CDbKey.ReadFromOldId(this, ref key);
     if (key != null)
     {
         foreach (AfterReadOldDbKeyCompatibleDelegate f in m_listeTraitementsSupplementairesAfterReadOldId)
         {
             f(key, typeObjet);
         }
         TrackDbKeyReaded(key);
     }
 }
示例#8
0
        //----------------------------------------------------
        public override bool Equals(object obj)
        {
            CDbKey obj2 = obj as CDbKey;

            if (obj2 != null)
            {
                if (obj2.m_strIdUniversel.Length > 0 &&
                    m_strIdUniversel.Length > 0)
                {
                    return(obj2.m_strIdUniversel.Equals(m_strIdUniversel));
                }
                else
                {
                    if (m_nIdPourCompatibliteQuonNeDoitPlusUtiliser != null &&
                        obj2.m_nIdPourCompatibliteQuonNeDoitPlusUtiliser != null)
                    {
                        return(m_nIdPourCompatibliteQuonNeDoitPlusUtiliser.Equals(obj2.m_nIdPourCompatibliteQuonNeDoitPlusUtiliser));
                    }
                }
            }
            return(false);
        }
示例#9
0
 //-----------------------------------------------
 /// <summary>
 /// Crée une clé à partir d'une valeur serializable
 /// </summary>
 /// <param name="strValue"></param>
 /// <returns></returns>
 public static CDbKey CreateFromStringValue(string strValue)
 {
     if (strValue.ToUpper().StartsWith(c_IdInSerialize))
     {
         try
         {
             int nTmp = Int32.Parse(strValue.Substring(c_IdInSerialize.Length));
             return(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nTmp));
         }
         catch
         {
             return(null);
         }
     }
     if (strValue.Length < 10)  //Si ça peut être juste un entier !
     {
         int nId;
         if (Int32.TryParse(strValue, out nId))
         {
             return(CDbKey.GetNewDbKeyOnIdAUtiliserPourCeuxQuiNeGerentPasLeDbKey(nId));
         }
     }
     return(new CDbKey(strValue));
 }
示例#10
0
        //----------------------------------------------------
        internal static void SerializeKey(C2iSerializer ser, ref CDbKey key)
        {
            switch (ser.Mode)
            {
            case ModeSerialisation.Lecture:
                key = null;
                string strTmp = "";
                ser.TraiteString(ref strTmp);
                if (strTmp.Length > 0)
                {
                    key = CDbKey.CreateFromStringValue(strTmp);
                }
                break;

            case ModeSerialisation.Ecriture:
                string strTmpWrite = "";
                if (key != null)
                {
                    strTmpWrite = key.StringValue;
                }
                ser.TraiteString(ref strTmpWrite);
                break;
            }
        }