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