Smrf.NodeXL.GraphMLLib.TwitterGraphMLUtil.AppendRepliesToAndMentionsEdgeXmlNode C# (CSharp) Method

AppendRepliesToAndMentionsEdgeXmlNode() private static method

private static AppendRepliesToAndMentionsEdgeXmlNode ( GraphMLXmlDocument graphMLXmlDocument, String screenName1, String screenName2, String relationship, TwitterStatus twitterStatus, System.Boolean includeStatus ) : void
graphMLXmlDocument Smrf.XmlLib.GraphMLXmlDocument
screenName1 String
screenName2 String
relationship String
twitterStatus TwitterStatus
includeStatus System.Boolean
return void
    AppendRepliesToAndMentionsEdgeXmlNode
    (
        GraphMLXmlDocument graphMLXmlDocument,
        String screenName1,
        String screenName2,
        String relationship,
        TwitterStatus twitterStatus,
        Boolean includeStatus
    )
    {
        Debug.Assert(graphMLXmlDocument != null);
        Debug.Assert( !String.IsNullOrEmpty(screenName1) );
        Debug.Assert( !String.IsNullOrEmpty(screenName2) );
        Debug.Assert( !String.IsNullOrEmpty(relationship) );
        Debug.Assert(twitterStatus != null);

        XmlNode edgeXmlNode = NodeXLGraphMLUtil.AppendEdgeXmlNode(
            graphMLXmlDocument, screenName1, screenName2, relationship);

        String statusDateUtc = twitterStatus.ParsedDateUtc;
        Boolean hasStatusDateUtc = !String.IsNullOrEmpty(statusDateUtc);

        if (hasStatusDateUtc)
        {
            // The status's date is the relationship date.

            graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                EdgeRelationshipDateUtcID, statusDateUtc);
        }

        if (includeStatus)
        {
            String statusText = twitterStatus.Text;

            graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                EdgeStatusID, statusText);

            String urls = twitterStatus.Urls;

            if ( !String.IsNullOrEmpty(urls) )
            {
                graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                    EdgeStatusUrlsID, urls);

                graphMLXmlDocument.AppendGraphMLAttributeValue( edgeXmlNode,
                    EdgeStatusDomainsID, UrlsToDomains(urls) );
            }

            if ( !String.IsNullOrEmpty(twitterStatus.Hashtags) )
            {
                graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                    EdgeStatusHashtagsID, twitterStatus.Hashtags);
            }

            if (hasStatusDateUtc)
            {
                graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                    EdgeStatusDateUtcID, statusDateUtc);
            }

            graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                EdgeStatusWebPageUrlID, 

                FormatStatusWebPageUrl(screenName1, twitterStatus)
                );

            AppendLatitudeAndLongitudeGraphMLAttributeValues(
                graphMLXmlDocument, edgeXmlNode, twitterStatus.Latitude,
                twitterStatus.Longitude);

            // Precede the ID with a single quote to force Excel to treat the
            // ID as text.  Otherwise, it formats the ID, which is a large
            // number, in scientific notation.

            graphMLXmlDocument.AppendGraphMLAttributeValue(edgeXmlNode,
                NodeXLGraphMLUtil.ImportedIDID, "'" + twitterStatus.ID);

            AppendInReplyToStatusIDGraphMLAttributeValue(graphMLXmlDocument,
                edgeXmlNode, twitterStatus.InReplyToStatusID);
        }
    }