/// <summary> /// Permet d'enregistrer les informations de synchronisation lors de la sauvegarde d'un enregistrement en base /// </summary> /// <param name="entity">Entité en cours de sauvegarde</param> public void AddDatasSynchroOnSaveRecord(BasePoco entity) { //1. Recherche de la table de synchronisation pour cette entitée var table = SynchronisationTableAttribute.GetSynchronizableTable(typeof(SynchronizeService).GetTypeInfo().Assembly, entity.GetType()); if (table != null) { //2. Création d'un enregistrement de tracking var trackingData = (TableSynchronize)Activator.CreateInstance(table.AsType()); trackingData.Date = DateTime.Now; trackingData.IdObject = entity.Id; trackingData.ChecksumObject = GetChecksumObject(entity); trackingData.Save(); } }
/// <summary> /// Permet de renvoyer le checksum MD5 de l'entitée /// </summary> /// <param name="entity">Entité en sauvegarde</param> /// <returns>Checksum de l'entité</returns> private string GetChecksumObject(BasePoco entity) { return Md5.HashMd5(SerializeObjectToByteArray(entity)); }