示例#1
0
        public AssetBase Get(string id)
        {
            string uri = MapServer(id) + "/assets/" + id;

            AssetBase asset = null;
            if (m_Cache != null)
                asset = m_Cache.Get(id);
            
            if (asset == null || asset.Data == null || asset.Data.Length == 0)
            {
                // XXX: Commented out for now since this has either never been properly operational or not for some time
                // as m_maxAssetRequestConcurrency was being passed as the timeout, not a concurrency limiting option.
                // Wasn't noticed before because timeout wasn't actually used.
                // Not attempting concurrency setting for now as this omission was discovered in release candidate
                // phase for OpenSimulator 0.8.  Need to revisit afterwards.
//                asset
//                    = SynchronousRestObjectRequester.MakeRequest<int, AssetBase>(
//                        "GET", uri, 0, m_maxAssetRequestConcurrency);

                asset = SynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0, m_Auth);

                if (m_Cache != null)
                    m_Cache.Cache(asset);
            }
            return asset;
        }
        public AssetBase Get(string id)
        {
//            m_log.DebugFormat("[ASSET SERVICE CONNECTOR]: Synchronous get request for {0}", id);

            string uri = m_ServerURI + "/assets/" + id;

            AssetBase asset = null;

            if (m_Cache != null)
            {
                asset = m_Cache.Get(id);
            }

            if (asset == null)
            {
                // XXX: Commented out for now since this has either never been properly operational or not for some time
                // as m_maxAssetRequestConcurrency was being passed as the timeout, not a concurrency limiting option.
                // Wasn't noticed before because timeout wasn't actually used.
                // Not attempting concurrency setting for now as this omission was discovered in release candidate
                // phase for OpenSimulator 0.8.  Need to revisit afterwards.
//                asset
//                    = SynchronousRestObjectRequester.MakeRequest<int, AssetBase>(
//                        "GET", uri, 0, m_maxAssetRequestConcurrency);

                asset = SynchronousRestObjectRequester.MakeRequest <int, AssetBase>("GET", uri, 0, m_Auth);

                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }
            }
            return(asset);
        }
示例#3
0
        public string Store(AssetBase asset)
        {
            if (asset.Temporary || asset.Local)
            {
                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }

                return(asset.ID);
            }

            string uri = m_ServerURI + "/assets/";

            string newID = SynchronousRestObjectRequester.MakeRequest <AssetBase, string>("POST", uri, asset);

            if (newID != String.Empty)
            {
                asset.ID = newID;

                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }
            }

            return(newID);
        }
        public virtual bool Delete(UUID id)
        {
            List <string> serverURIs =
                m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("AssetServerURI");

            if (m_serverURL != string.Empty)
            {
                serverURIs = new List <string>(new string[1] {
                    m_serverURL
                });
            }
#if (!ISWIN)
            foreach (string mServerUri in serverURIs)
            {
                string uri = mServerUri + "/" + id;
                SynchronousRestObjectRequester.MakeRequest <int, bool>("DELETE", uri, 0);
            }
#else
            foreach (string uri in serverURIs.Select(m_ServerURI => m_ServerURI + "/" + id))
            {
                SynchronousRestObjectRequester.
                MakeRequest <int, bool>("DELETE", uri, 0);
            }
#endif
            if (m_Cache != null)
            {
                m_Cache.Expire(id.ToString());
            }

            return(true);
        }
        private void UndeliveredMessage(GridInstantMessage im, string reason)
        {
            if ((im.offline != 0) &&
                (!im.fromGroup || (im.fromGroup && m_ForwardOfflineGroupMessages)))
            {
                bool success = SynchronousRestObjectRequester.MakeRequest <GridInstantMessage, bool>(
                    "POST", m_RestURL + "/SaveMessage/", im);

                if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
                {
                    IClientAPI client = FindClient(im.fromAgentID);
                    if (client == null)
                    {
                        return;
                    }

                    client.SendInstantMessage(new GridInstantMessage(
                                                  null, im.toAgentID,
                                                  "System", im.fromAgentID,
                                                  (byte)InstantMessageDialog.MessageFromAgent,
                                                  "User is not logged in. " +
                                                  (success ? "Message saved." : "Message not saved"),
                                                  false, new Vector3()));
                }
            }
        }
示例#6
0
        public bool UpdateContent(string id, byte[] data)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                m_Cache.Get(id, out asset);
            }

            if (asset == null)
            {
                AssetMetadata metadata = GetMetadata(id);
                if (metadata == null)
                {
                    return(false);
                }

                asset          = new AssetBase(metadata.FullID, metadata.Name, metadata.Type, UUID.Zero.ToString());
                asset.Metadata = metadata;
            }
            asset.Data = data;

            string uri = MapServer(id) + "/assets/" + id;

            if (SynchronousRestObjectRequester.MakeRequest <AssetBase, bool>("POST", uri, asset, m_Auth))
            {
                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }

                return(true);
            }
            return(false);
        }
        public virtual AssetBase Get(string id)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                asset = m_Cache.Get(id);
                if ((asset != null) && ((asset.Data != null) && (asset.Data.Length != 0)))
                {
                    return(asset);
                }
            }

            List <string> serverURIs = m_registry == null
                                          ? null
                                          : m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf(
                "AssetServerURI");

            if (m_serverURL != string.Empty)
            {
                serverURIs = new List <string>(new string[1] {
                    m_serverURL
                });
            }
            if (serverURIs != null)
#if (!ISWIN)
            { foreach (string mServerUri in serverURIs)
              {
                  string uri = mServerUri + "/" + id;
                  asset = SynchronousRestObjectRequester.MakeRequest <int, AssetBase>("GET", uri, 0);

                  if (m_Cache != null && asset != null)
                  {
                      m_Cache.Cache(asset);
                  }
                  if (asset != null)
                  {
                      return(asset);
                  }
              }
            }
#else
            { foreach (string uri in serverURIs.Select(m_ServerURI => m_ServerURI + "/" + id))
              {
                  asset = SynchronousRestObjectRequester.
                          MakeRequest <int, AssetBase>("GET", uri, 0);

                  if (m_Cache != null && asset != null)
                  {
                      m_Cache.Cache(asset);
                  }
                  if (asset != null)
                  {
                      return(asset);
                  }
              }
            }
#endif
            return(null);
        }
        public virtual AssetBase Get(string id)
        {
            AssetBase     asset      = null;
            List <string> serverURIs = m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("AssetServerURI");

            foreach (string m_ServerURI in serverURIs)
            {
                string uri = m_ServerURI + "/" + id;

                if (m_Cache != null)
                {
                    asset = m_Cache.Get(id);
                }

                if (asset == null)
                {
                    asset = SynchronousRestObjectRequester.
                            MakeRequest <int, AssetBase>("GET", uri, 0);

                    if (m_Cache != null)
                    {
                        m_Cache.Cache(asset);
                    }
                }
                if (asset != null)
                {
                    return(asset);
                }
            }
            return(asset);
        }
        public virtual bool GetExists(string id)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                asset = m_Cache.Get(id);
            }

            if (asset != null)
            {
                return(true);
            }

            List <string> serverURIs = m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("AssetServerURI");

            foreach (string m_ServerURI in serverURIs)
            {
                string uri = m_ServerURI + "/" + id + "/exists";

                bool exists = SynchronousRestObjectRequester.
                              MakeRequest <int, bool>("GET", uri, 0);
                if (exists)
                {
                    return(exists);
                }
            }

            return(false);
        }
示例#10
0
        public void retryStore(AssetBase asset, int nextRetryLevel)
        {
/* this may be bad, so excluding
 *          if (m_Cache != null && !m_Cache.Check(asset.ID))
 *          {
 *              m_log.WarnFormat("[Assets] Upload giveup asset bc no longer in local cache: {0}",
 *                  asset.ID.ToString();
 *              return; // if no longer in cache, it was deleted or expired
 *          }
 */
            string uri = MapServer(asset.FullID.ToString()) + "/assets/";

            string newID = null;

            try
            {
                newID = SynchronousRestObjectRequester.
                        MakeRequest <AssetBase, string>("POST", uri, asset, 100000, m_Auth);
            }
            catch
            {
                newID = null;
            }

            if (newID == null || newID == String.Empty || newID == stringUUIDZero)
            {
                if (nextRetryLevel >= MAXSENDRETRIESLEN)
                {
                    m_log.WarnFormat("[Assets] Giving up on uploading after {2} retries id: {0} type {1}",
                                     asset.ID.ToString(), asset.Type.ToString(), MAXSENDRETRIESLEN);
                }
                else
                {
                    lock (m_sendRetries)
                    {
                        if (m_sendRetries[nextRetryLevel] == null)
                        {
                            m_sendRetries[nextRetryLevel] = new List <AssetBase>();
                        }
                        List <AssetBase> m_queue = m_sendRetries[nextRetryLevel];
                        m_queue.Add(asset);
                        m_log.WarnFormat("[Assets] Upload failed: {0} type {1} will retry later",
                                         asset.ID.ToString(), asset.Type.ToString());
                    }
                }
            }
            else
            {
                m_log.InfoFormat("[Assets] Upload of {0} succeeded after {1} failed attempts", asset.ID.ToString(), nextRetryLevel.ToString());
                if (newID != asset.ID)
                {
                    asset.ID = newID;
                }
            }

            if (m_Cache != null)
            {
                m_Cache.Cache(asset);
            }
        }
        public AssetBase Get(string id)
        {
            //            m_log.DebugFormat("[ASSET SERVICE CONNECTOR]: Synchronous get request for {0}", id);

            string uri = m_ServerURI + "/assets/" + id;

            AssetBase asset = null;

            if (m_Cache != null)
            {
                asset = m_Cache.Get(id);
            }

            if (asset == null)
            {
                asset = SynchronousRestObjectRequester.
                        MakeRequest <int, AssetBase>("GET", uri, 0, m_maxAssetRequestConcurrency);

                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }
            }
            return(asset);
        }
        public virtual bool[] AssetsExist(string[] ids)
        {
            if (m_ServerURI == null)
            {
                return(null);
            }

            string uri = m_ServerURI + "/get_assets_exist";

            bool[] exist = null;
            try
            {
                exist = SynchronousRestObjectRequester.MakeRequest <string[], bool[]>("POST", uri, ids, m_Auth);
            }
            catch (Exception)
            {
                // This is most likely to happen because the server doesn't support this function,
                // so just silently return "doesn't exist" for all the assets.
            }

            if (exist == null)
            {
                exist = new bool[ids.Length];
            }

            return(exist);
        }
        public void RegisterNewReceiver(IScriptModule scriptEngine, UUID channel, UUID objectID, UUID itemID, string uri)
        {
            if (!m_Enabled)
            {
                return;
            }

            m_log.InfoFormat("[XMLRPC GRID ROUTER]: New receiver Obj: {0} Ch: {1} ID: {2} URI: {3}",
                             objectID.ToString(), channel.ToString(), itemID.ToString(), uri);

            XmlRpcInfo info = new XmlRpcInfo();

            info.channel = channel;
            info.uri     = uri;
            info.item    = itemID;

            bool success = SynchronousRestObjectRequester.MakeRequest <XmlRpcInfo, bool>(
                "POST", m_ServerURI + "/RegisterChannel/", info);

            if (!success)
            {
                m_log.Error("[XMLRPC GRID ROUTER] Error contacting server");
            }

            m_Channels[itemID] = channel;
        }
        public virtual AssetMetadata GetMetadata(string id)
        {
            if (m_Cache != null)
            {
                AssetBase fullAsset;
                if (!m_Cache.Get(id, out fullAsset))
                {
                    return(null);
                }

                if (fullAsset != null)
                {
                    return(fullAsset.Metadata);
                }
            }

            if (m_ServerURI == null)
            {
                return(null);
            }

            string uri = m_ServerURI + "/assets/" + id + "/metadata";

            return(SynchronousRestObjectRequester.MakeRequest <int, AssetMetadata>("GET", uri, 0, m_Auth));
        }
        private void AssetRequestProcessor(QueuedAssetRequest r)
        {
            string id = r.id;

            try
            {
                AssetBase a = SynchronousRestObjectRequester.MakeRequest <int, AssetBase>("GET", r.uri, 0, 30000, m_Auth);

                if (a != null && m_Cache != null)
                {
                    m_Cache.Cache(a);
                }

                List <AssetRetrievedEx> handlers;
                lock (m_AssetHandlers)
                {
                    handlers = m_AssetHandlers[id];
                    m_AssetHandlers.Remove(id);
                }

                if (handlers != null)
                {
                    foreach (AssetRetrievedEx h in handlers)
                    {
                        try { h.Invoke(a); }
                        catch { }
                    }
                    handlers.Clear();
                }
            }
            catch { }
        }
        private bool RemoveChannel(UUID itemID)
        {
            if (!m_Channels.ContainsKey(itemID))
            {
                m_log.InfoFormat("[XMLRPC GRID ROUTER]: Attempted to unregister non-existing Item: {0}", itemID.ToString());
                return(false);
            }

            XmlRpcInfo info = new XmlRpcInfo();

            info.channel = m_Channels[itemID];
            info.item    = itemID;
            info.uri     = "http://0.0.0.0:00";

            if (info != null)
            {
                bool success = SynchronousRestObjectRequester.MakeRequest <XmlRpcInfo, bool>(
                    "POST", m_ServerURI + "/RemoveChannel/", info);

                if (!success)
                {
                    m_log.Error("[XMLRPC GRID ROUTER] Error contacting server");
                }

                m_Channels.Remove(itemID);
                return(true);
            }
            return(false);
        }
        public virtual AssetBase Get(string id)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                if (!m_Cache.Get(id, out asset))
                {
                    return(null);
                }
            }

            if (asset == null && m_ServerURI != null)
            {
                string uri = m_ServerURI + "/assets/" + id;

                asset = SynchronousRestObjectRequester.MakeRequest <int, AssetBase>("GET", uri, 0, m_Auth);
                if (m_Cache != null)
                {
                    if (asset != null)
                    {
                        m_Cache.Cache(asset);
                    }
                    else
                    {
                        m_Cache.CacheNegative(id);
                    }
                }
            }
            return(asset);
        }
示例#18
0
            /**
             * @brief Both parts of split message translated,
             *        or body-only message translated.
             */
            public void Finished(string message)
            {
                bool success = false;

                if (message != null)
                {
                    im.message = message;
                    success    = SynchronousRestObjectRequester.MakeRequest <GridInstantMessage, bool>(
                        "POST", omm.m_RestURL + "/SaveMessage/?scope=" +
                        scene.RegionInfo.ScopeID.ToString(), im, 10000);
                }

                if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
                {
                    IClientAPI client = omm.FindClient(new UUID(im.fromAgentID));
                    if (client != null)
                    {
                        client.SendInstantMessage(new GridInstantMessage(
                                                      null, new UUID(im.toAgentID),
                                                      "System", new UUID(im.fromAgentID),
                                                      (byte)InstantMessageDialog.MessageFromAgent,
                                                      "User is not logged in. " +
                                                      (success ? "Message saved." : "Message not saved"),
                                                      false, new Vector3()));
                    }
                }
            }
示例#19
0
        public virtual AssetMetadata GetMetadata(string id)
        {
            if (m_Cache != null)
            {
                AssetBase fullAsset = m_Cache.Get(id);

                if (fullAsset != null)
                {
                    return(fullAsset.Metadata);
                }
            }

            List <string> serverURIs = m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("AssetServerURI");

            foreach (string m_ServerURI in serverURIs)
            {
                string uri = m_ServerURI + "/" + id + "/metadata";

                AssetMetadata asset = SynchronousRestObjectRequester.
                                      MakeRequest <int, AssetMetadata>("GET", uri, 0);
                if (asset != null)
                {
                    return(asset);
                }
            }
            return(null);
        }
示例#20
0
        public bool IsAuthorizedForRegion(string userID, string firstname, string surname, string email, string regionName, string regionID, out string message)
        {
            // do a remote call to the authorization server specified in the AuthorizationServerURI
            m_log.InfoFormat("[AUTHORIZATION CONNECTOR]: IsAuthorizedForRegion checking {0} at remote server {1}", userID, m_ServerURI);

            string uri = m_ServerURI;

            AuthorizationRequest req = new AuthorizationRequest(userID, firstname, surname, email, regionName, regionID);

            AuthorizationResponse response;

            try
            {
                response = SynchronousRestObjectRequester.MakeRequest <AuthorizationRequest, AuthorizationResponse>("POST", uri, req);
            }
            catch (Exception e)
            {
                m_log.WarnFormat("[AUTHORIZATION CONNECTOR]: Unable to send authorize {0} for region {1} error thrown during comms with remote server. Reason: {2}", userID, regionID, e.Message);
                message = "";
                return(m_ResponseOnFailure);
            }
            if (response == null)
            {
                message = "Null response";
                return(m_ResponseOnFailure);
            }
            m_log.DebugFormat("[AUTHORIZATION CONNECTOR] response from remote service was {0}", response.Message);
            message = response.Message;

            return(response.IsAuthorized);
        }
示例#21
0
        private void MoveItemsAsync(string userID, List <InventoryItemBase> items, UUID sessionID)
        {
            if (items == null)
            {
                m_log.WarnFormat("[INVENTORY CONNECTOR]: request to move items got a null list.");
                return;
            }

            try
            {
                //SynchronousRestSessionObjectPoster<List<InventoryItemBase>, bool>.BeginPostObject(
                //    "POST", m_ServerURI + "/MoveItems/", items, sessionID.ToString(), userID.ToString());

                //// Success
                //return;
                string uri = m_ServerURI + "/inventory/" + userID;
                if (SynchronousRestObjectRequester.
                    MakeRequest <List <InventoryItemBase>, bool>("PUT", uri, items))
                {
                    m_log.DebugFormat("[INVENTORY CONNECTOR]: move {0} items poster succeeded {1}", items.Count, uri);
                }
                else
                {
                    m_log.DebugFormat("[INVENTORY CONNECTOR]: move {0} items poster failed {1}", items.Count, uri);
                };

                return;
            }
            catch (Exception e)
            {
                m_log.ErrorFormat("[INVENTORY CONNECTOR]: Move inventory items operation failed, {0} {1} (old server?). Trying slow way.",
                                  e.Source, e.Message);
            }
        }
        public AssetBase Get(string id)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                if (!m_Cache.Get(id, out asset))
                {
                    return(null);
                }
            }

            if (asset == null || asset.Data == null || asset.Data.Length == 0)
            {
                string uri = MapServer(id) + "/assets/" + id;
                asset = SynchronousRestObjectRequester.MakeRequest <int, AssetBase>("GET", uri, 0, m_Auth);
                if (m_Cache != null)
                {
                    if (asset != null)
                    {
                        m_Cache.Cache(asset);
                    }
                    else
                    {
                        m_Cache.CacheNegative(id);
                    }
                }
            }
            return(asset);
        }
        private void RetrieveInstantMessages(IClientAPI client)
        {
            if (m_RestURL != "")
            {
                MainConsole.Instance.DebugFormat("[OFFLINE MESSAGING] Retrieving stored messages for {0}", client.AgentId);

                List <GridInstantMessage> msglist = SynchronousRestObjectRequester.MakeRequest
                                                    <UUID, List <GridInstantMessage> >(
                    "POST", m_RestURL + "/RetrieveMessages/", client.AgentId);

                foreach (GridInstantMessage im in msglist)
                {
                    // client.SendInstantMessage(im);

                    // Send through scene event manager so all modules get a chance
                    // to look at this message before it gets delivered.
                    //
                    // Needed for proper state management for stored group
                    // invitations
                    //
                    IScene s = FindScene(client.AgentId);
                    if (s != null)
                    {
                        s.EventManager.TriggerIncomingInstantMessage(im);
                    }
                }
            }
        }
示例#24
0
        public void OnRemoveMuteListEntry(IClientAPI client, UUID MuteID, string Name, UUID AgentID)
        {
            //m_log.DebugFormat("[NSL MUTE LIST] OnRemoveMuteListEntry {0}, {1}, {2}", MuteID.ToString(), Name, AgentID.ToString());

            GridMuteList ml = new GridMuteList(AgentID, MuteID, Name, 0, 0);
            //bool success = SynchronousRestObjectPoster.BeginPostObject<GridMuteList, bool>("POST", m_RestURL+"/DeleteList/", ml);
            bool success = SynchronousRestObjectRequester.MakeRequest <GridMuteList, bool>("POST", m_RestURL + "/DeleteList/", ml);
        }
示例#25
0
        public override UUID Store(Aurora.Framework.AssetBase asset)
        {
            AssetBase rasset = Build(asset);

            if ((asset.Flags & AssetFlags.Local) == AssetFlags.Local)
            {
                if (m_Cache != null)
                {
                    m_Cache.Cache(asset);
                }

                return(asset.ID);
            }

            UUID          newID      = UUID.Zero;
            List <string> serverURIs =
                m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("AssetServerURI");

            if (m_serverURL != string.Empty)
            {
                serverURIs = new List <string>(new string[1] {
                    m_serverURL
                });
            }
            foreach (string mServerUri in serverURIs)
            {
                string uri = mServerUri + "/";
                try
                {
                    string request = SynchronousRestObjectRequester.MakeRequest <AssetBase, string>("POST", uri, rasset);

                    UUID.TryParse(request, out newID);
                }
                catch (Exception e)
                {
                    MainConsole.Instance.WarnFormat("[ASSET CONNECTOR]: Unable to send asset {0} to asset server. Reason: {1}", asset.ID, e.Message);
                }

                if (newID != UUID.Zero)
                {
                    // Placing this here, so that this work with old asset servers that don't send any reply back
                    // SynchronousRestObjectRequester returns somethins that is not an empty string
                    asset.ID = newID;

                    if (m_Cache != null)
                    {
                        m_Cache.Cache(asset);
                    }
                }
                else
                {
                    return(asset.ID); //OPENSIM
                }
            }
            return(newID);
        }
示例#26
0
        private void RetrieveInstantMessages(IClientAPI client)
        {
            if (m_RestURL == String.Empty)
            {
                return;
            }
            else
            {
                m_log.DebugFormat("[OFFLINE MESSAGING]: Retrieving stored messages for {0}", client.AgentId);

                List <GridInstantMessage> msglist
                    = SynchronousRestObjectRequester.MakeRequest <UUID, List <GridInstantMessage> >(
                          "POST", m_RestURL + "/RetrieveMessages/", client.AgentId);

                if (msglist != null)
                {
                    foreach (GridInstantMessage im in msglist)
                    {
                        // If translator active, the message is already translated to this avatar's language
                        // so don't try to translate it again.  tagging it with [[[--]]] will cause the
                        // translator to just pass it through to the avatar without translation.
                        if ((m_TranslatorModule != null) && !im.message.StartsWith("[[["))
                        {
                            im.message = "[[[--]]]" + im.message;
                        }

                        if (im.dialog == (byte)InstantMessageDialog.InventoryOffered)
                        {
                            // send it directly or else the item will be given twice
                            client.SendInstantMessage(im);
                        }
                        else
                        {
                            // Send through scene event manager so all modules get a chance
                            // to look at this message before it gets delivered.
                            //
                            // Needed for proper state management for stored group
                            // invitations
                            //

                            im.offline = 1;

                            Scene s = FindScene(client.AgentId);
                            if (s != null)
                            {
                                s.EventManager.TriggerIncomingInstantMessage(im);
                            }
                        }
                    }
                }
            }
        }
示例#27
0
        public virtual bool Delete(string id)
        {
            m_Cache?.Expire(id);

            if (m_ServerURI == null)
            {
                return(false);
            }

            string uri = m_ServerURI + "/assets/" + id;

            return(SynchronousRestObjectRequester.MakeRequest <int, bool>("DELETE", uri, 0, m_Auth));
        }
示例#28
0
        public bool Delete(string id)
        {
            string uri = MapServer(id) + "/assets/" + id;

            if (SynchronousRestObjectRequester.MakeRequest<int, bool>("DELETE", uri, 0, m_Auth))
            {
                if (m_Cache != null)
                    m_Cache.Expire(id);

                return true;
            }
            return false;
        }
        public bool Delete(string id)
        {
            string uri = m_ServerURI + "/assets/" + id;

            if (SynchronousRestObjectRequester.MakeRequest <int, bool>("DELETE", uri, 0, m_Auth))
            {
                if (m_Cache != null)
                {
                    m_Cache.Expire(id);
                }

                return(true);
            }
            return(false);
        }
示例#30
0
        private bool UndeliveredMessage(GridInstantMessage im)
        {
            if (m_RestURL != string.Empty && (im.offline != 0) &&
                (!im.fromGroup || (im.fromGroup && m_ForwardOfflineGroupMessages)))
            {
//                m_log.DebugFormat("[HG IM SERVICE]: Message saved");

                return(SynchronousRestObjectRequester.MakeRequest <GridInstantMessage, bool>(
                           "POST", m_RestURL + "/SaveMessage/", im));
            }
            else
            {
                return(false);
            }
        }