public GridInstantMessage[] GetOfflineMessages(UUID PrincipalID) { Dictionary<string, object> sendData = new Dictionary<string, object>(); sendData["PRINCIPALID"] = PrincipalID; sendData["METHOD"] = "getofflinemessages"; string reqString = WebUtils.BuildQueryString(sendData); List<GridInstantMessage> Messages = new List<GridInstantMessage>(); try { List<string> m_ServerURIs = m_registry.RequestModuleInterface<IConfigurationService>().FindValueOf(PrincipalID.ToString(), "RemoteServerURI"); foreach (string m_ServerURI in m_ServerURIs) { string reply = SynchronousRestFormsRequester.MakeRequest("POST", m_ServerURI + "/auroradata", reqString); if (reply != string.Empty) { Dictionary<string, object> replyData = WebUtils.ParseXmlResponse(reply); foreach (object f in replyData) { KeyValuePair<string, object> value = (KeyValuePair<string, object>)f; if (value.Value is Dictionary<string, object>) { Dictionary<string, object> valuevalue = value.Value as Dictionary<string, object>; GridInstantMessage message = new GridInstantMessage(); message.FromKVP(valuevalue); Messages.Add(message); } } } } return Messages.ToArray(); } catch (Exception e) { m_log.DebugFormat("[AuroraRemoteOfflineMessagesConnector]: Exception when contacting server: {0}", e.ToString()); } return Messages.ToArray(); }
public byte[] AddOfflineMessage(Dictionary<string, object> request) { Dictionary<string, object> result = new Dictionary<string, object>(); GridInstantMessage message = new GridInstantMessage(); message.FromKVP(request); OfflineMessagesConnector.AddOfflineMessage(message); return SuccessResult(); }