/// <summary>
 /// Gets the social media feed.
 /// </summary>
 /// <param name="feedFor">The feed for.</param>
 /// <returns></returns>
 public static IFeedReader GetSocialMediaFeed(FeedFor feedFor)
 {
     IFeedReader feedReader = null;
     try
     {
         switch (feedFor)
         {
             case FeedFor.Facebook:
                 feedReader = new FacebookFeedReader();
                 break;
             case FeedFor.Twitter:
                 feedReader = new TwitterFeedReader();
                 break;
             case FeedFor.Pinterest:
                 feedReader = new PinterestFeedReader();
                 break;
             case FeedFor.Instagram:
                 feedReader = new InstagramFeedReader();
                 break;
             default:
                 break;
         }
     }
     catch (Exception ex)
     {
         ex.ExceptionValueTracker(feedFor);
     }
     return feedReader;
 }
示例#2
0
        /// <summary>
        /// Gets the social media feed.
        /// </summary>
        /// <param name="feedFor">The feed for.</param>
        /// <returns></returns>
        public static IFeedReader GetSocialMediaFeed(FeedFor feedFor)
        {
            IFeedReader feedReader = null;

            try
            {
                switch (feedFor)
                {
                case FeedFor.Facebook:
                    feedReader = new FacebookFeedReader();
                    break;

                case FeedFor.Twitter:
                    feedReader = new TwitterFeedReader();
                    break;

                case FeedFor.Pinterest:
                    feedReader = new PinterestFeedReader();
                    break;

                case FeedFor.Instagram:
                    feedReader = new InstagramFeedReader();
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                ex.ExceptionValueTracker(feedFor);
            }
            return(feedReader);
        }
示例#3
0
        /// <summary>
        /// Reads the RSS.
        /// </summary>
        /// <param name="htmlHelper">The HTML helper.</param>
        /// <param name="feedLink">The feed link.</param>
        /// <returns></returns>
        public static MvcHtmlString ReadRss(this HtmlHelper htmlHelper, string feedLink)
        {
            try
            {
                List <RssFeedModel> feedItems = new List <RssFeedModel>();
                FeedFor             feedfor   = FeedFor.Facebook;
                switch (feedLink)
                {
                case "Facebook:RssFeed":
                    feedfor = FeedFor.Facebook;
                    break;

                case "Twitter:RssFeed":
                    feedfor = FeedFor.Twitter;
                    break;

                case "Pinterest:RssFeed":
                    feedfor = FeedFor.Pinterest;
                    break;
                }

                NJFairground.Web.Utilities.SocialMedia.IFeedReader feedReader
                    = NJFairground.Web.Utilities.SocialMedia.SocialFeedReader.GetSocialMediaFeed(feedfor);

                feedItems = feedReader.Read().ToList();
                return(new MvcHtmlString(GetHtmlFromRss(feedItems)));
            }
            catch (Exception ex)
            {
                ex.ExceptionValueTracker(feedLink);
            }
            return(new MvcHtmlString(string.Empty));
        }
示例#4
0
        //--------------------//

        #region Clone
        /// <summary>
        /// Creates a deep copy of this <see cref="Feed"/> instance.
        /// </summary>
        /// <returns>The new copy of the <see cref="Feed"/>.</returns>
        public Feed Clone()
        {
            var feed = new Feed {
                UnknownAttributes = UnknownAttributes, UnknownElements = UnknownElements, MinInjectorVersion = MinInjectorVersion, Uri = Uri, Name = Name, Homepage = Homepage, NeedsTerminal = NeedsTerminal
            };

            feed.Feeds.AddRange(Feeds.CloneElements());
            feed.FeedFor.AddRange(FeedFor.CloneElements());
            feed.Summaries.AddRange(Summaries.CloneElements());
            feed.Descriptions.AddRange(Descriptions.CloneElements());
            feed.Categories.AddRange(Categories);
            feed.Icons.AddRange(Icons);
            feed.Elements.AddRange(Elements.CloneElements());
            feed.EntryPoints.AddRange(EntryPoints.CloneElements());
            feed.CapabilityLists.AddRange(CapabilityLists.CloneElements());
            return(feed);
        }
示例#5
0
        /// <summary>
        /// Flattens the <see cref="Group"/> inheritance structure and sets missing default values in <see cref="Implementation"/>s.
        /// </summary>
        /// <param name="feedUri">The feed the data was originally loaded from.</param>
        /// <exception cref="InvalidDataException">One or more required fields are not set.</exception>
        /// <remarks>This method should be called to prepare a <see cref="Feed"/> for solver processing. Do not call it if you plan on serializing the feed again since it may loose some of its structure.</remarks>
        public void Normalize([NotNull] FeedUri feedUri)
        {
            #region Sanity checks
            if (feedUri == null)
            {
                throw new ArgumentNullException(nameof(feedUri));
            }
            #endregion

            if (Name == null)
            {
                throw new InvalidDataException(string.Format(Resources.MissingNameTagInFeed, feedUri));
            }

            // Apply if-0install-version filter
            Elements.RemoveAll(FeedElement.FilterMismatch);
            Icons.RemoveAll(FeedElement.FilterMismatch);
            Categories.RemoveAll(FeedElement.FilterMismatch);
            Feeds.RemoveAll(FeedElement.FilterMismatch);
            FeedFor.RemoveAll(FeedElement.FilterMismatch);
            EntryPoints.RemoveAll(FeedElement.FilterMismatch);

            foreach (var icon in Icons)
            {
                icon.Normalize();
            }
            foreach (var feedReference in Feeds)
            {
                feedReference.Normalize();
            }
            foreach (var interfaceReference in FeedFor)
            {
                interfaceReference.Normalize();
            }

            NormalizeElements(feedUri);
            NormalizeEntryPoints();
        }