Smrf.NodeXL.GraphMLLib.TwitterStatus.TryFromStatusValueDictionary C# (CSharp) Method

TryFromStatusValueDictionary() public static method

public static TryFromStatusValueDictionary ( Object>.Dictionary statusValueDictionary, System.Boolean expandStatusUrls, TwitterStatus &twitterStatus ) : System.Boolean
statusValueDictionary Object>.Dictionary
expandStatusUrls System.Boolean
twitterStatus TwitterStatus
return System.Boolean
    TryFromStatusValueDictionary
    (
        Dictionary<String, Object> statusValueDictionary,
        Boolean expandStatusUrls,
        out TwitterStatus twitterStatus
    )
    {
        Debug.Assert(statusValueDictionary != null);

        twitterStatus = null;

        // Get the status information.

        String statusID, statusText;

        if (
            !TwitterJsonUtil.TryGetJsonValueFromDictionary(
                statusValueDictionary, "id_str", out statusID)
            ||
            !TwitterJsonUtil.TryGetJsonValueFromDictionary(
                statusValueDictionary, "text", out statusText)
            )
        {
            return (false);
        }

        String statusDateUtc;

        if ( TwitterJsonUtil.TryGetJsonValueFromDictionary(
            statusValueDictionary, "created_at", out statusDateUtc) )
        {
            statusDateUtc = TwitterDateParser.ParseTwitterDate(statusDateUtc);
        }

        String latitude, longitude;

        TwitterGraphMLUtil.GetLatitudeAndLongitudeFromStatusValueDictionary(
            statusValueDictionary, out latitude, out longitude);

        String statusUrls, statusHashtags;

        TwitterGraphMLUtil.GetUrlsAndHashtagsFromStatusValueDictionary(
            statusValueDictionary, expandStatusUrls, out statusUrls,
            out statusHashtags);

        String inReplyToStatusID;

        TwitterJsonUtil.TryGetJsonValueFromDictionary(
            statusValueDictionary, "in_reply_to_status_id_str",
            out inReplyToStatusID);

        // Note that null date, coordinates, URLs hashtags, and in-reply-to-ID
        // are acceptable here.

        twitterStatus = new TwitterStatus(
            statusID, statusText, statusDateUtc, latitude, longitude,
            statusUrls, statusHashtags, inReplyToStatusID);

        return (true);
    }

Usage Example

        TryAddStatusToUser
        (
            Dictionary <String, Object> statusValueDictionary,
            TwitterUser twitterUser,
            Boolean expandStatusUrls
        )
        {
            Debug.Assert(statusValueDictionary != null);
            Debug.Assert(twitterUser != null);

            TwitterStatus twitterStatus;

            if (!TwitterStatus.TryFromStatusValueDictionary(statusValueDictionary,
                                                            expandStatusUrls, out twitterStatus))
            {
                return(false);
            }

            twitterUser.Statuses.Add(twitterStatus);

            return(true);
        }