public override bool SetAvatar(UUID userID, AvatarData avatar) { Dictionary<string, object> sendData = new Dictionary<string, object>(); //sendData["SCOPEID"] = scopeID.ToString(); sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString(); sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString(); sendData["METHOD"] = "setavatar"; sendData["UserID"] = userID.ToString(); Dictionary<string, object> structData = avatar.ToKeyValuePairs(); #if (!ISWIN) foreach (KeyValuePair<string, object> kvp in structData) { if (kvp.Key != "Textures") sendData[kvp.Key] = kvp.Value.ToString(); } #else foreach (KeyValuePair<string, object> kvp in structData.Where(kvp => kvp.Key != "Textures")) sendData[kvp.Key] = kvp.Value.ToString(); #endif ResetAvatar(userID); string reqString = WebUtils.BuildQueryString(sendData); //MainConsole.Instance.DebugFormat("[AVATAR CONNECTOR]: queryString = {0}", reqString); try { List<string> serverURIs = m_registry.RequestModuleInterface<IConfigurationService>().FindValueOf("AvatarServerURI"); foreach (string mServerUri in serverURIs) { string reply = SynchronousRestFormsRequester.MakeRequest("POST", mServerUri, reqString); if (reply != string.Empty) { Dictionary<string, object> replyData = WebUtils.ParseXmlResponse(reply); if (replyData.ContainsKey("result")) { if (replyData["result"].ToString().ToLower() == "success") return true; } else MainConsole.Instance.DebugFormat("[AVATAR CONNECTOR]: SetAvatar reply data does not contain result field"); } else MainConsole.Instance.DebugFormat("[AVATAR CONNECTOR]: SetAvatar received empty reply"); } } catch (Exception e) { MainConsole.Instance.DebugFormat("[AVATAR CONNECTOR]: Exception when contacting avatar server: {0}", e.Message); } return false; }
public bool SetAvatar(UUID userID, AvatarData avatar) { Dictionary<string, object> sendData = new Dictionary<string, object>(); //sendData["SCOPEID"] = scopeID.ToString(); sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString(); sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString(); sendData["METHOD"] = "setavatar"; sendData["UserID"] = userID.ToString(); Dictionary<string, object> structData = avatar.ToKeyValuePairs(); foreach (KeyValuePair<string, object> kvp in structData) sendData[kvp.Key] = kvp.Value.ToString(); string reqString = ServerUtils.BuildQueryString(sendData); //m_log.DebugFormat("[AVATAR CONNECTOR]: queryString = {0}", reqString); try { string reply = SynchronousRestFormsRequester.MakeRequest("POST", m_ServerURI + "/avatar", reqString); if (reply != string.Empty) { Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply); if (replyData.ContainsKey("result")) { if (replyData["result"].ToString().ToLower() == "success") return true; else return false; } else m_log.DebugFormat("[AVATAR CONNECTOR]: SetAvatar reply data does not contain result field"); } else m_log.DebugFormat("[AVATAR CONNECTOR]: SetAvatar received empty reply"); } catch (Exception e) { m_log.DebugFormat("[AVATAR CONNECTOR]: Exception when contacting avatar server: {0}", e.Message); } return false; }