Universe.Framework.Services.ClassHelpers.Profile.IUserProfileInfo.FromOSD C# (CSharp) Method

FromOSD() public method

public FromOSD ( OSDMap map ) : void
map OSDMap
return void
        public override void FromOSD (OSDMap map)
        {
            PrincipalID = map ["PrincipalID"].AsUUID ();
            AllowPublish = map ["AllowPublish"].AsBoolean ();
            MaturePublish = map ["MaturePublish"].AsBoolean ();

            //Interests
            Interests = new ProfileInterests {
                WantToMask = map ["WantToMask"].AsUInteger (),
                WantToText = map ["WantToText"].AsString (),
                CanDoMask = map ["CanDoMask"].AsUInteger (),
                CanDoText = map ["CanDoText"].AsString (),
                Languages = map ["Languages"].AsString ()
            };
            //End interests

            try
            {
                if (map.ContainsKey ("Notes"))
                    Notes = (OSDMap)OSDParser.DeserializeJson (map ["Notes"].AsString ());
            } catch
            {
            }

            AboutText = map ["AboutText"].AsString ();
            FirstLifeImage = map ["FirstLifeImage"].AsUUID ();
            FirstLifeAboutText = map ["FirstLifeAboutText"].AsString ();
            Image = map ["Image"].AsUUID ();
            WebURL = map ["WebURL"].AsString ();
            Created = map ["Created"].AsInteger ();
            DisplayName = map ["DisplayName"].AsString ();
            Partner = map ["Partner"].AsUUID ();
            Visible = map ["Visible"].AsBoolean ();
            AArchiveName = map ["AArchiveName"].AsString ();
            CustomType = map ["CustomType"].AsString ();
            IMViaEmail = map ["IMViaEmail"].AsBoolean ();
            IsNewUser = map ["IsNewUser"].AsBoolean ();
            MembershipGroup = map ["MembershipGroup"].AsString ();
        }
    }

Usage Example

        public IUserProfileInfo GetUserProfile(UUID agentID)
        {
            IUserProfileInfo UserProfile = new IUserProfileInfo();
            lock (UserProfilesCache)
            {
                //Try from the user profile first before getting from the DB
                if (UserProfilesCache.TryGetValue(agentID, out UserProfile))
                    return UserProfile;
            }

            object remoteValue = DoRemote(agentID);
            if (remoteValue != null || m_doRemoteOnly)
            {
                UserProfile = (IUserProfileInfo)remoteValue;
                //Add to the cache
                lock (UserProfilesCache)
                    UserProfilesCache[agentID] = UserProfile;
                return UserProfile;
            }

            QueryFilter filter = new QueryFilter();
            filter.andFilters["ID"] = agentID;
            filter.andFilters["`Key`"] = "LLProfile";
            List<string> query = null;
            //Grab it from the almost generic interface
            query = GD.Query(new[] { "Value" }, m_userProfileTable, filter, null, null, null);

            if (query == null || query.Count == 0)
                return null;
            //Pull out the OSDmap
            OSDMap profile = (OSDMap) OSDParser.DeserializeLLSDXml(query[0]);

            UserProfile = new IUserProfileInfo();
            UserProfile.FromOSD(profile);

            //Add to the cache
            lock(UserProfilesCache)
                UserProfilesCache[agentID] = UserProfile;

            return UserProfile;
        }
IUserProfileInfo