Example #1
0
        byte[] HandleGet(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            if (!request.ContainsKey("PrincipalID"))
            {
                NullResult(result, "Bad network data");
            }
            else
            {
                UUID principalID = new UUID(request["PrincipalID"].ToString());
                List <GridInstantMessage> ims = m_OfflineIMService.GetMessages(principalID);

                Dictionary <string, object> dict = new Dictionary <string, object>();
                int i = 0;
                foreach (GridInstantMessage m in ims)
                {
                    dict["im-" + i++] = OfflineIMDataUtils.GridInstantMessage(m);
                }

                result["RESULT"] = dict;
            }

            string xmlString = ServerUtils.BuildXmlResponse(result);

            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            return(Util.UTF8NoBomEncoding.GetBytes(xmlString));
        }
Example #2
0
        byte[] HandleEmail(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            GridInstantMessage im = OfflineIMDataUtils.GridInstantMessage(request);
            string             recipientAddress = string.Empty;

            if (request.ContainsKey("RecipientAddress") && request["RecipientAddress"] != null)
            {
                recipientAddress = request["RecipientAddress"].ToString();
            }

            string reason = string.Empty;

            bool success = m_OfflineIMService.EmailMessage(im, recipientAddress, out reason);

            result["RESULT"] = success.ToString();
            if (!success)
            {
                result["REASON"] = reason;
            }

            string xmlString = ServerUtils.BuildXmlResponse(result);

            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            return(Util.UTF8NoBomEncoding.GetBytes(xmlString));
        }
Example #3
0
        public List <GridInstantMessage> GetMessages(UUID principalID)
        {
            List <GridInstantMessage> ims = new List <GridInstantMessage>();

            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["PrincipalID"] = principalID;
            Dictionary <string, object> ret = MakeRequest("GET", sendData);

            if (ret == null)
            {
                return(ims);
            }

            if (!ret.ContainsKey("RESULT"))
            {
                return(ims);
            }

            if (ret["RESULT"].ToString() == "NULL")
            {
                return(ims);
            }

            foreach (object v in ((Dictionary <string, object>)ret["RESULT"]).Values)
            {
                GridInstantMessage m = OfflineIMDataUtils.GridInstantMessage((Dictionary <string, object>)v);
                ims.Add(m);
            }

            return(ims);
        }
Example #4
0
        public bool EmailMessage(GridInstantMessage im, string recipientAddress, out string reason)
        {
            reason = string.Empty;
            Dictionary <string, object> sendData = OfflineIMDataUtils.GridInstantMessage(im);

            sendData.Add("RecipientAddress", recipientAddress);

            Dictionary <string, object> ret = MakeRequest("EMAIL", sendData);

            if (ret == null)
            {
                reason = "Bad response from server";
                return(false);
            }

            string result = ret["RESULT"].ToString();

            if (result == "NULL" || result.ToLower() == "false")
            {
                reason = ret.ContainsKey("REASON") ? ret["REASON"].ToString() : "Unknown error";
                return(false);
            }

            return(true);
        }
Example #5
0
        byte[] HandleStore(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            GridInstantMessage im = OfflineIMDataUtils.GridInstantMessage(request);

            string reason = string.Empty;

            bool success = m_OfflineIMService.StoreMessage(im, out reason);

            result["RESULT"] = success.ToString();
            if (!success)
            {
                result["REASON"] = reason;
            }

            string xmlString = ServerUtils.BuildXmlResponse(result);

            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            return(Util.UTF8NoBomEncoding.GetBytes(xmlString));
        }
Example #6
0
        public bool StoreMessage(GridInstantMessage im, out string reason)
        {
            reason = string.Empty;
            Dictionary <string, object> sendData = OfflineIMDataUtils.GridInstantMessage(im);

            Dictionary <string, object> ret = MakeRequest("STORE", sendData);

            if (ret == null)
            {
                reason = "Bad response from server";
                return(false);
            }

            string result = ret["RESULT"].ToString();

            if (result == "NULL" || result.ToLower() == "false")
            {
                reason = ret["REASON"].ToString();
                return(false);
            }

            return(true);
        }
Example #7
0
        public List <GridInstantMessage> GetMessages(UUID principalID)
        {
            List <GridInstantMessage> ims = new List <GridInstantMessage>();

            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["PrincipalID"] = principalID;
            Dictionary <string, object> ret = MakeRequest("GET", sendData);

            if (ret == null)
            {
                return(ims);
            }

            if (!ret.ContainsKey("RESULT"))
            {
                return(ims);
            }

            string result = ret["RESULT"].ToString();

            if (result == "NULL" || result.ToLower() == "false")
            {
                string reason = ret.ContainsKey("REASON") ? ret["REASON"].ToString() : "Unknown error";
                m_log.DebugFormat("[OfflineIM.V2.RemoteConnector]: GetMessages for {0} failed: {1}", principalID, reason);
                return(ims);
            }

            foreach (object v in ((Dictionary <string, object>)ret["RESULT"]).Values)
            {
                GridInstantMessage m = OfflineIMDataUtils.GridInstantMessage((Dictionary <string, object>)v);
                ims.Add(m);
            }

            return(ims);
        }