Implementing the IPushPipe interface

To implement the IPushPipe interface, you must implement the PushData method.

To implement the PushData method, add the following method in file FacebookEventsOutboundPipe.cs:

public void PushData( IList<PublishingSystemEventInfo> items )
{
    foreach ( var item in items )
    {
        var wrapperObject = GetConvertedItemsForMapping( item ).First();
 
        if ( this.pipeSettings.LanguageIds.Count > 0 && !this.pipeSettings.LanguageIds.Contains( item.Language ) )
        {
            continue;
        }
 
        var nameField = PublishingConstants.FieldTitle;
        var locationField = PublishingConstants.FieldLink;
        var eventStartField = PublishingConstants.FieldEventStart;
        var eventEndField = PublishingConstants.FieldEventEnd;
 
        string name = string.Empty;
        string location = string.Empty;
        DateTime eventStart = DateTime.Now;
        DateTime eventEnd = DateTime.Now;
 
        if ( wrapperObject.HasProperty( nameField ) )
        {
            name = wrapperObject.GetProperty( nameField ).ToString();
        }
 
        if ( wrapperObject.HasProperty( locationField ) )
        {
            location = wrapperObject.GetProperty( locationField ).ToString();
        }
 
        if ( wrapperObject.HasProperty( eventStartField ) )
        {
            eventStart = DateTime.Parse( wrapperObject.GetProperty( eventStartField ).ToString() );
        }
 
        if ( wrapperObject.HasProperty( eventEndField ) )
        {
            eventEnd = DateTime.Parse( wrapperObject.GetProperty( eventEndField ).ToString() );
        }
 
        switch ( item.ItemAction )
        {
            case RelatedActionsConstants.SystemObjectDeleted:
                this.DeleteEvent( name );
                break;
            case RelatedActionsConstants.SystemObjectAdded:
                this.CreateEvent( name, location, eventStart, eventEnd );
                break;
            case RelatedActionsConstants.SystemObjectModified:
                this.DeleteEvent( name );
                this.CreateEvent( name, location, eventStart, eventEnd );
                break;
        }
    }
}

First, you get all properties from the wrapped event. Then, based on the action, perform one of the following:

  • If it does not exist, create the event

  • Delete the event

  • If it has been modified, first delete, then create the event

Next steps

+1-888-365-2779
sales@sitefinity.com

Related topics:

Feedback

How useful is this article?

Tell us more

Submit
Your message was successfully sent.

We appreciate your feedback.

Your message could not be sent.

OK