/// <summary> /// Loads object from the database /// </summary> /// <param name="uuid">UUID of the object</param> /// <returns>Returns RexAssetData if the object is found with ID, returns null if not found.</returns> public RexAssetData LoadObject(UUID uuid) { try { RexAssetData obj = new RexAssetData(); ICriteria criteria = manager.GetSession().CreateCriteria(typeof(RexAssetData)); criteria.Add(Expression.Eq("AssetID", uuid)); criteria.AddOrder(Order.Asc("AssetID")); foreach (RexAssetData p in criteria.List()) { if (p.AssetID == uuid) { return p; } } return obj; } catch (Exception e) { m_log.WarnFormat("[NHIBERNATE]: Failed loading RexAssetData with id {0}. Exception {1} ", uuid, e.ToString()); return null; } }
public RexAssetData GetAssetData(UUID assetId) { RexAssetData data; if (!m_assets.TryGetValue(assetId, out data)) { data = m_db.LoadObject(assetId); if (data == null) { data = new RexAssetData(assetId); } m_assets.Add(assetId, data); } return data; }
/// <summary> /// Retrives all objects from the RexAssetData table /// </summary> /// <returns>All objects as a list, if none found or error while processing returns null</returns> public List<RexAssetData> LoadAllObjects() { try { RexAssetData obj = new RexAssetData(); ICriteria criteria = manager.GetSession().CreateCriteria(typeof(RexAssetData)); List<RexAssetData> assets = (List<RexAssetData>)criteria.List<RexAssetData>(); return assets; } catch (Exception e) { m_log.WarnFormat("[NHIBERNATE]: Failed loading RexAssetData. Exception {0} ", e); return new List<RexAssetData>(); } }
public bool Convert() { try { SqliteConnection conn = new SqliteConnection(m_assetConnectionString); conn.Open(); Assembly assem = GetType().Assembly; Migration m = new Migration(conn, assem, "AssetStore"); if (m.Version == 0) { //fetch all assets with mediaurl and construct RexAssetData objects List<RexAssetData> rexAssets = new List<RexAssetData>(); using (SqliteCommand cmd = new SqliteCommand(assetSelect, conn)) { using (IDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { if (((String)reader["MediaURL"]) != "") { UUID id = new UUID((String) reader["UUID"]); string mediaUrl = (String)reader["MediaURL"]; byte refreshRate = 0; object refRate = reader["RefreshRate"]; if (refRate is byte) { refreshRate = (byte)refRate; } RexAssetData data = new RexAssetData(id, mediaUrl,refreshRate); rexAssets.Add(data); } } } } conn.Close(); //Now add them to ModreX database NHibernateRexAssetData rexAssetManager = new NHibernateRexAssetData(); rexAssetManager.Initialise(m_rexConnectionString); foreach (RexAssetData data in rexAssets) { rexAssetManager.StoreObject(data); } //finally remove realXtend properties and update version number conn.Open(); //TODO: remove realXtend properties // this is not done yet because SQLite is missing drop column feature m.Version = 1; } conn.Close(); return true; } catch (Exception e) { m_log.ErrorFormat("[AssetStore] Migration failed. Reason: {0}", e); return false; } }
/// <summary> /// Save or update object to database /// </summary> /// <param name="obj">Object to save or update</param> public void StoreObject(RexAssetData obj) { try { RexAssetData old = (RexAssetData)manager.Get(typeof(RexAssetData), obj.AssetID); if (old != null) { m_log.InfoFormat("[NHIBERNATE] updating RexAssetData {0}", obj.AssetID); manager.Update(obj); } else { m_log.InfoFormat("[NHIBERNATE] saving RexAssetData {0}", obj.AssetID); manager.Insert(obj); } } catch (Exception e) { m_log.Error("[NHIBERNATE]: Can't save: ", e); } }
public void SetAssetData(RexAssetData data) { if (m_assets[data.AssetID] != null) { m_log.InfoFormat("[REXASSET]: Replacing old RexAssetData {0}", data.AssetID); } m_assets[data.AssetID] = data; m_db.StoreObject(data); }
public void SetAssetData(UUID assetID, string mediaURL, byte refreshRate) { if (m_assets.ContainsKey(assetID)) { m_assets[assetID].MediaURL = mediaURL; m_assets[assetID].RefreshRate = refreshRate; } else { RexAssetData data = new RexAssetData(assetID, mediaURL, refreshRate); m_assets.Add(assetID, data); } m_db.StoreObject(m_assets[assetID]); }