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); } }
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); } }