private byte[] GetAvatar(Dictionary <string, object> request) { UUID user = UUID.Zero; if (!request.ContainsKey("UserID")) { return(FailureResult()); } if (UUID.TryParse(request["UserID"].ToString(), out user)) { AvatarData avatar = m_AvatarService.GetAvatar(user); if (avatar == null) { return(FailureResult()); } Dictionary <string, object> result = new Dictionary <string, object>(); if (avatar == null) { result["result"] = "null"; } else { result["result"] = avatar.ToKVP(); } string xmlString = WebUtils.BuildXmlResponse(result); UTF8Encoding encoding = new UTF8Encoding(); return(encoding.GetBytes(xmlString)); } return(FailureResult()); }
public virtual bool SetAvatar(UUID userID, AvatarData avatar) { m_registry.RequestModuleInterface <ISimulationBase>().EventManager.FireGenericEventHandler("SetAppearance", new object[2] { userID, 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.ToKVP(); foreach (KeyValuePair <string, object> kvp in structData) { sendData[kvp.Key] = kvp.Value.ToString(); } 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); }