/// <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;
            }
        }
Esempio n. 2
0
 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>();
            }
        }
Esempio n. 4
0
        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);
     }
 }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
        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]);
        }