public void PickInfoUpdate(IClientAPI remoteClient, UUID pickID, UUID creatorID, bool topPick, string name, string desc, UUID snapshotID, int sortOrder, bool enabled)
        {
            IUserProfileInfo info = ProfileFrontend.GetUserProfile(remoteClient.AgentId);
            if (info == null)
                return;
            ScenePresence p = m_scene.GetScenePresence(remoteClient.AgentId);

            UUID parceluuid = p.currentParcelUUID;
            string user = "******";
            string OrigionalName = "(unknown)";
            
            Vector3 pos_global = new Vector3(p.AbsolutePosition.X + p.Scene.RegionInfo.RegionLocX * 256,
                p.AbsolutePosition.Y + p.Scene.RegionInfo.RegionLocY * 256,
                p.AbsolutePosition.Z);

            ILandObject targetlandObj = m_scene.LandChannel.GetLandObject(p.AbsolutePosition.X, p.AbsolutePosition.Y);

            if (targetlandObj != null)
            {
                ScenePresence parcelowner = m_scene.GetScenePresence(targetlandObj.LandData.OwnerID);

                if (parcelowner != null)
                    user = parcelowner.Name;

                parceluuid = targetlandObj.LandData.InfoUUID;

                OrigionalName = targetlandObj.LandData.Name;
            }

            OSDMap picks = Util.DictionaryToOSD(info.Picks);
            if (!picks.ContainsKey(pickID.ToString()))
            {
                ProfilePickInfo values = new ProfilePickInfo();
                values.PickUUID = pickID;
                values.CreatorUUID = creatorID;
                values.TopPick = topPick ? 1 : 0;
                values.ParcelUUID = parceluuid;
                values.Name = name;
                values.Description = desc;
                values.SnapshotUUID = snapshotID;
                values.User = user;
                values.OriginalName = OrigionalName;
                values.SimName = remoteClient.Scene.RegionInfo.RegionName;
                values.GlobalPos = pos_global;
                values.SortOrder = sortOrder;
                values.Enabled = enabled ? 1 : 0;
                picks.Add(pickID.ToString(), Util.DictionaryToOSD(values.ToKeyValuePairs()));
            }
            else
            {
                ProfilePickInfo oldpick = new ProfilePickInfo(Util.OSDToDictionary((OSDMap)picks[pickID.ToString()]));
                //Security check
                if (oldpick.CreatorUUID != remoteClient.AgentId)
                    return;

                oldpick.ParcelUUID = parceluuid;
                oldpick.Name = name;
                oldpick.SnapshotUUID = snapshotID;
                oldpick.Description = desc;
                oldpick.SimName = remoteClient.Scene.RegionInfo.RegionName;
                oldpick.GlobalPos = pos_global;
                oldpick.SortOrder = sortOrder;
                oldpick.Enabled = enabled ? 1 : 0;
                picks.Add(pickID.ToString(), Util.DictionaryToOSD(oldpick.ToKeyValuePairs()));
            }
            info.Picks = Util.OSDToDictionary(picks);
            ProfileFrontend.UpdateUserProfile(info);
        }
        public void UpdatePick(ProfilePickInfo pick)
        {
            Dictionary<string, object> sendData = pick.ToKeyValuePairs();

            sendData["METHOD"] = "updatepick";

            string reqString = ServerUtils.BuildQueryString(sendData);

            try
            {
                string reply = SynchronousRestFormsRequester.MakeRequest("POST",
                        m_ServerURI + "/auroradata",
                        reqString);
                if (reply != string.Empty)
                {
                    Dictionary<string, object> replyData = ServerUtils.ParseXmlResponse(reply);

                    if (replyData != null)
                    {
                        if (replyData.ContainsKey("result") && (replyData["result"].ToString().ToLower() == "null"))
                        {
                            m_log.DebugFormat("[AuroraRemoteProfileConnector]: UpdatePick {0} received null response",
                                pick.PickUUID);
                        }
                    }

                    else
                    {
                        m_log.DebugFormat("[AuroraRemoteProfileConnector]: UpdatePick {0} received null response",
                            pick.PickUUID);
                    }

                }
            }
            catch (Exception e)
            {
                m_log.DebugFormat("[AuroraRemoteProfileConnector]: Exception when contacting server: {0}", e.Message);
            }
        }