예제 #1
0
        private void RemoveObject(EntityId entityId, ISession session)
        {
            QueryParams <PersistentStorageItem> query = new QueryParams <PersistentStorageItem>(
                new GroupCriteria(
                    new ArithmeticCriteria("id.systemId", entityId.SystemId),
                    new ArithmeticCriteria("id.deviceId", entityId.DeviceId),
                    new ArithmeticCriteria("id.id", entityId.Id)), 1);
            IList <PersistentStorageItem> resultList = QueryHelper.Query <PersistentStorageItem>(session, query, LOG_QUERY);
            PersistentStorageItem         item       = null;

            if (resultList.Count == 0)
            {
                throw new Exception(String.Format("Unable to remove object. Id: {0}", entityId));
            }
            else
            {
                item = resultList[0];
                ORMUtils.DeleteEntity(item, session);
            }
        }
예제 #2
0
 private void SaveObject(EntityId entityId, T o, ISession session)
 {
     try
     {
         QueryParams <PersistentStorageItem> query = new QueryParams <PersistentStorageItem>(
             new GroupCriteria(
                 new ArithmeticCriteria("id.systemId", entityId.SystemId),
                 new ArithmeticCriteria("id.deviceId", entityId.DeviceId),
                 new ArithmeticCriteria("id.id", entityId.Id)), 1);
         IList <PersistentStorageItem> resultList = QueryHelper.Query <PersistentStorageItem>(session, query, LOG_QUERY);
         PersistentStorageItem         item       = null;
         if (resultList.Count == 0)
         {
             item         = new PersistentStorageItem();
             item.Id      = entityId;
             item.Version = new EntityVersion(mDeviceId);
         }
         else
         {
             item = resultList[0];
         }
         if (o == null)
         {
             item.EntryData = null;
         }
         else
         {
             using (MemoryStream ms = new MemoryStream())
             {
                 SerializationHelper.Write <T>(o, ms, DataFormatter, CompressContent);
                 item.EntryData = ms.ToArray();
             }
         }
         ORMUtils.SaveEntity(item, session);
     }
     catch (Exception ex)
     {
         throw new PersistenceException(String.Format("Unable to save object. Id: {0}", entityId), ex);
     }
 }