Exemple #1
0
        /// <summary>
        /// Get request object from provider
        /// </summary>
        /// <param name="provider">provider</param>
        /// <returns>request object</returns>
        private FeedRequestObject GetRequestObject(IFeedProvider provider)
        {
            provider.RequestFeedsDelegate = this.FeedRequestDelegateCallback;
            FeedRequestObject reqObject = new FeedRequestObject(provider);

            return(reqObject);
        }
Exemple #2
0
        /// <summary>
        /// Deregister feed provider for stop request feeds
        /// </summary>
        /// <param name="provider">provider for deregister</param>
        public void DeRegister(IFeedProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (this.FeedProviders.ContainsKey(provider) == false)
            {
                return;
            }

            FeedRequestObject reqObject = null;
            bool result = this.FeedProviders.TryGetValue(provider, out reqObject);

            if (result == true)
            {
                reqObject.StopRequest();
            }

            //해당 파서에 대한 피딩 중단
            //프로바이더 제거
            provider.RequestFeedsDelegate = null;
            this.FeedProviders.Remove(provider);
        }
Exemple #3
0
        public void RegisterFeedProvider <TData, TContext>(string channelName,
                                                           IFeedProvider <TData, TContext> feedProvider)
        {
            if (string.IsNullOrEmpty(channelName))
            {
                throw new ArgumentException("'channelName' should be not empty string", "channelName");
            }
            if (feedProvider == null)
            {
                throw new ArgumentNullException("feedProvider");
            }
            IDisposable obj;
            Channel <TData, TContext> channel;

            if (!m_Channels.TryGetValue(channelName, out obj))
            {
                channel = new Channel <TData, TContext>(channelName, m_DefaultRetryPeriod, Logger);
                m_ChannelErrorsSubscribtion.Add(channel.Errors.Subscribe(ex => onUnhandledException(channelName, ex)));
                m_Channels[channelName] = channel;
            }
            else
            {
                channel = obj as Channel <TData, TContext>;
            }

            if (channel == null)
            {
                throw new DataBusException(
                          string.Format(
                              "Can not register feed provider resolving feeds of '{0}' within context of '{1}' for channel '{2}'",
                              typeof(TData).Name,
                              typeof(TContext).Name, obj));
            }
            channel.AddFeedProvider(feedProvider);
        }
        public void SetUp()
        {
            theSolution = new Solution();
            theSolution.ClearFeeds();

            theSolution.AddFeed(Feed.Fubu);
            theSolution.AddFeed(Feed.NuGetV2);

            theSolution.AddDependency(bottles      = new Dependency("Bottles"));
            theSolution.AddDependency(fubucore     = new Dependency("FubuCore", "1.0.1.201"));
            theSolution.AddDependency(rhinomocks   = new Dependency("RhinoMocks", "3.6.1", UpdateMode.Fixed));
            theSolution.AddDependency(structuremap = new Dependency("StructureMap", "2.6.3", UpdateMode.Fixed));

            RippleEnvironment.StubConnection(true);

            theFubuFeed = MockRepository.GenerateStub <IFloatingFeed>();
            theFubuFeed.Stub(x => x.GetLatest()).Return(new IRemoteNuget[]
            {
                new StubNuget("Bottles", "1.0.2.2"),
                new StubNuget("FubuCore", "1.0.2.232"),
                new StubNuget("StructureMap", "2.6.4.71"),
            });
            theFubuFeed.Stub(x => x.IsOnline()).Return(true);

            theNugetFeed = MockRepository.GenerateStub <INugetFeed>();
            theNugetFeed.Stub(x => x.Find(rhinomocks)).Return(new StubNuget("RhinoMocks", "3.6.1"));
            theNugetFeed.Stub(x => x.Find(structuremap)).Return(new StubNuget("StructureMap", "2.6.3"));
            theNugetFeed.Stub(x => x.IsOnline()).Return(true);

            theFeedProvider = MockRepository.GenerateStub <IFeedProvider>();
            theFeedProvider.Stub(x => x.For(Feed.Fubu)).Return(theFubuFeed);
            theFeedProvider.Stub(x => x.For(Feed.NuGetV2)).Return(theNugetFeed);

            FeedRegistry.Stub(theFeedProvider);
        }
        public void SetUp()
        {
            theSolution = new Solution();
            theSolution.ClearFeeds();

            theSolution.AddFeed(Feed.Fubu);
            theSolution.AddFeed(Feed.NuGetV2);

            theSolution.AddDependency(fubucore = new Dependency("FubuCore", "1.0.1.201"));

            var theProject = new Project("Test.csproj");
            theSolution.AddProject(theProject);

            theProject.AddDependency(bottles = new Dependency("Bottles"));
            theProject.AddDependency(rhinomocks = new Dependency("RhinoMocks", "3.6.1", UpdateMode.Fixed));
            theProject.AddDependency(structuremap = new Dependency("StructureMap", "2.6.3", UpdateMode.Fixed));

            theFubuFeed = MockRepository.GenerateStub<IFloatingFeed>();
            theFubuFeed.Stub(x => x.GetLatest()).Return(new IRemoteNuget[]
            {
                new StubNuget("Bottles", "1.0.2.2"),
                new StubNuget("FubuCore", "1.0.2.232"),
                new StubNuget("StructureMap", "2.6.4.71"),
            });

            theNugetFeed = MockRepository.GenerateStub<INugetFeed>();
            theNugetFeed.Stub(x => x.Find(rhinomocks)).Return(new StubNuget("RhinoMocks", "3.6.1"));
            theNugetFeed.Stub(x => x.Find(structuremap)).Return(new StubNuget("StructureMap", "2.6.3"));

            theFeedProvider = MockRepository.GenerateStub<IFeedProvider>();
            theFeedProvider.Stub(x => x.For(Feed.Fubu)).Return(theFubuFeed);
            theFeedProvider.Stub(x => x.For(Feed.NuGetV2)).Return(theNugetFeed);

            FeedRegistry.Stub(theFeedProvider);
        }
 /// <summary>
 /// Erstellt eine neue Beschreibung.
 /// </summary>
 /// <param name="provider">Die Verwaltung aller Sender.</param>
 public static IFeedSet CreateFeedSet( IFeedProvider provider )
 {
     // Validate
     if (ReferenceEquals( provider, null ))
         throw new ArgumentException( "keine Senderverwaltung angegeben", "provider" );
     else
         return new FeedSet( provider );
 }
Exemple #7
0
 internal void AddFeedProvider(IFeedProvider <TData, TContext> feedProvider)
 {
     if (_feedProviders.Contains(feedProvider))
     {
         throw new DataBusException(string.Format("FeedProvider {1}  is already registered in channel '{0}' [{2}]", Name, feedProvider.GetType().Name, typeof(TContext).Name));
     }
     _feedProviders.Add(feedProvider);
 }
Exemple #8
0
        public void RequestFeeds()
        {
            IFeedProvider provider = this as IFeedProvider;

            if (provider.RequestFeedsDelegate != null)
            {
                provider.RequestFeedsDelegate(this);
            }
        }
Exemple #9
0
            public FeedRequestObject(IFeedProvider provider)
            {
                if (provider == null)
                {
                    throw new ArgumentNullException("provider");
                }

                this.Provider = provider;
            }
Exemple #10
0
 public HomeController(IBlogProvider blogProvider, IPostProvider postProvider, IFeedProvider feedProvider, IAuthorProvider authorProvider, IThemeProvider themeProvider, IStorageProvider storageProvider)
 {
     _blogProvider    = blogProvider;
     _postProvider    = postProvider;
     _feedProvider    = feedProvider;
     _authorProvider  = authorProvider;
     _themeProvider   = themeProvider;
     _storageProvider = storageProvider;
 }
Exemple #11
0
        /// <summary>
        /// Try send request to web again with refreshed request from provider
        /// </summary>
        /// <param name="provider"></param>
        private void FeedRequestDelegateCallback(IFeedProvider provider)
        {
            FeedRequestObject reqObject = null;

            bool isReqObjectExist = this.FeedProviders.TryGetValue(provider, out reqObject);

            if (isReqObjectExist == true && reqObject != null)
            {
                reqObject.BeginRequest();
            }
        }
Exemple #12
0
        private void ProcessFeed(IFeedProvider feedProvider)
        {
            while (feedProvider.HasNext)
            {
                var randomeMilliSeconds = Randomizer.GetRandomNumber(1, 1) * 1000;
                //Thread.Sleep(randomeMilliSeconds);

                // raise new tick event
                NewTickEvent?.Invoke(this, new TickEventArgs(feedProvider.NextTick()));
            }
        }
Exemple #13
0
 /// <summary>
 /// Erstellt eine neue Beschreibung.
 /// </summary>
 /// <param name="provider">Die Verwaltung aller Sender.</param>
 public static IFeedSet CreateFeedSet(IFeedProvider provider)
 {
     // Validate
     if (ReferenceEquals(provider, null))
     {
         throw new ArgumentException("keine Senderverwaltung angegeben", "provider");
     }
     else
     {
         return(new FeedSet(provider));
     }
 }
Exemple #14
0
 public HomeController(IBlogProvider blogProvider,
                       IPostProvider postProvider, IFeedProvider feedProvider, IAuthorProvider authorProvider, IThemeProvider themeProvider,
                       IStorageProvider storageProvider, ICompositeViewEngine compositeViewEngine)
 {
     _blogProvider        = blogProvider;
     _postProvider        = postProvider;
     _feedProvider        = feedProvider;
     _authorProvider      = authorProvider;
     _themeProvider       = themeProvider;
     _storageProvider     = storageProvider;
     _compositeViewEngine = compositeViewEngine;
 }
Exemple #15
0
        public void RemoveFeedProvider <TData, TContext>(string channelName, IFeedProvider <TData, TContext> feedProvider)
        {
            Channel <TData, TContext> channel;
            IDisposable obj;

            if (m_Channels.TryGetValue(channelName, out obj))
            {
                channel = obj as Channel <TData, TContext>;
                if (channel != null)
                {
                    channel.RemoveFeedProvider(feedProvider);
                }
            }
        }
Exemple #16
0
        static void PrintAllFeeds()
        {
            IFeedProvider <IItem> provider   = ProvidersFactory.GetProvider(ProviderType.Rss);
            IFeed <IItem>         collection = provider.GetFeedCollection(URL);

            foreach (IItem one in collection)
            {
                Console.WriteLine($"Id: {one.Id}\n" +
                                  $"Link: {one.Link}\n" +
                                  $"PublishDate: {one.PublishDate}\n" +
                                  $"Title: {one.Title}\n" +
                                  $"TypeDescription: {one.TypeDescription}\n" +
                                  $"Description: {one.Description}\n\n\n");
            }
        }
        /// <summary>
        /// Begin asynchronous parsing
        /// </summary>
        /// <param name="provider">provider</param>
        /// <returns>true to register success</returns>
        public bool Register(IFeedProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (this.FeedProviders.ContainsKey(provider) == true)
            {
                return false;
            }

            FeedRequestObject requestObject = this.GetRequestObject(provider);
            this.FeedProviders.Add(provider, requestObject);

            return true;
        }
Exemple #18
0
        /// <summary>
        /// Begin asynchronous parsing
        /// </summary>
        /// <param name="provider">provider</param>
        /// <returns>true to register success</returns>
        public bool Register(IFeedProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (this.FeedProviders.ContainsKey(provider) == true)
            {
                return(false);
            }

            FeedRequestObject requestObject = this.GetRequestObject(provider);

            this.FeedProviders.Add(provider, requestObject);

            return(true);
        }
Exemple #19
0
        public DataFeed(IFeedProvider feedProvider)
        {
            if (feedProvider == null)
            {
                throw new ArgumentNullException("Feed Provider is invalid");
            }
            FeedQueue <Tick> feedQueue = new FeedQueue <Tick>();

            queue                      = feedQueue;
            this.FeedProvider          = feedProvider;
            FeedProvider.NewTickEvent += OnNewTick;

            lock (this)
            {
                Start();
                started = true;
            }
        }
Exemple #20
0
        public Feed(IFeedProvider <TData, TContext> feedProvider, TContext context, Subject <Exception> errorsSubject, long retryPeriod, string channelName, ILogger logger)
        {
            _channelName = channelName;
            _logger      = logger ?? NullLogger.Instance;

//            _retryPeriod = retryPeriod;
            if (feedProvider == null)
            {
                throw new ArgumentNullException("feedProvider");
            }
            if (errorsSubject == null)
            {
                throw new ArgumentNullException("errorsSubject");
            }
            _context              = context;
            _feedProvider         = feedProvider;
            _errorsSubject        = errorsSubject;
            _resubscriptionPolicy = feedProvider.GetResubscriptionPolicy(_context) ?? new TimeoutFeedResubscriptionPolicy(retryPeriod);
        }
Exemple #21
0
        public void RemoveFeedProvider(IFeedProvider <TData, TContext> feedProvider)
        {
            if (_feedProviders.Contains(feedProvider))
            {
                var feeds = from reference in _feeds
                            let f = reference.Value.Target as Feed <TData, TContext>
                                    where f != null && f.FeedProvider == feedProvider
                                    select new { feed = f, context = reference.Key };

                foreach (var feed in feeds.ToArray())
                {
                    if (feed.feed.FeedProvider == feedProvider)
                    {
                        _feeds.Remove(feed.context);
                        feed.feed.Dispose();
                    }
                }
                _feedProviders.Remove(feedProvider);
            }
        }
        /// <summary>
        /// Deregister feed provider for stop request feeds 
        /// </summary>
        /// <param name="provider">provider for deregister</param>
        public void DeRegister(IFeedProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            if (this.FeedProviders.ContainsKey(provider) == false)
            {
                return;
            }

            FeedRequestObject reqObject = null;
            bool result = this.FeedProviders.TryGetValue(provider, out reqObject);
            if (result == true)
            {
                reqObject.StopRequest();
            }

            //해당 파서에 대한 피딩 중단
            //프로바이더 제거
            provider.RequestFeedsDelegate = null;
            this.FeedProviders.Remove(provider);
        }
 public void Initialize()
 {
     logger   = new SimpleLogger();
     provider = (RSSAtomProvider)ProvidersFactory.GetProvider(ProviderType.Rss, logger: logger);
 }
Exemple #24
0
 public Hub(ISubscriptionVerifier subscriptionVerifier, IFeedProvider feedProvider)
 {
     _subscriptionVerifier = subscriptionVerifier;
     _feedProvider         = feedProvider;
 }
Exemple #25
0
 public static void Stub(IFeedProvider provider)
 {
     _provider = provider;
 }
Exemple #26
0
 /// <summary>
 /// Erstellt eine neue Beschreibung.
 /// </summary>
 /// <param name="provider">Die Verwaltung aller Sender.</param>
 public FeedSet( IFeedProvider provider )
 {
     m_devices = Enumerable.Range( 0, provider.NumberOfDevices ).Select( i => new Device( i, provider ) ).ToArray();
     m_provider = provider;
 }
Exemple #27
0
 public GetLatestFeedHandler(IFeedProvider feedProvider, IProcessedTitlesRepository processedTitles)
 {
     _feedProvider    = feedProvider;
     _processedTitles = processedTitles;
 }
Exemple #28
0
 public FeedRecievedEventHandler(IFeedProvider provider)
 {
     this.Provider = provider;
 }
            public FeedRequestObject(IFeedProvider provider)
            {
                if (provider == null)
                {
                    throw new ArgumentNullException("provider");
                }

                this.Provider = provider;
            }
 /// <summary>
 /// Get request object from provider
 /// </summary>
 /// <param name="provider">provider</param>
 /// <returns>request object</returns>
 private FeedRequestObject GetRequestObject(IFeedProvider provider)
 {
     provider.RequestFeedsDelegate = this.FeedRequestDelegateCallback;
     FeedRequestObject reqObject = new FeedRequestObject(provider);
     return reqObject;
 }
        /// <summary>
        /// Try send request to web again with refreshed request from provider
        /// </summary>
        /// <param name="provider"></param>
        private void FeedRequestDelegateCallback(IFeedProvider provider)
        {
            FeedRequestObject reqObject = null;

            bool isReqObjectExist = this.FeedProviders.TryGetValue(provider, out reqObject);
            if (isReqObjectExist == true && reqObject != null)
            {
                reqObject.BeginRequest();
            }
        }
 public Hub(ISubscriptionVerifier subscriptionVerifier, IFeedProvider feedProvider)
 {
     _subscriptionVerifier = subscriptionVerifier;
     _feedProvider = feedProvider;
 }
Exemple #33
0
 public static void Stub(IFeedProvider provider)
 {
     _provider = provider;
 }
 public FeedConnector(IFeedProvider feedProvider)
 {
     _feedProvider = feedProvider;
 }
Exemple #35
0
 public FeedController(
     IFeedProvider feedProvider
     )
 {
     this.feedProvider = feedProvider;
 }
Exemple #36
0
 /// <summary>
 /// Erstellt eine neue Beschreibung.
 /// </summary>
 /// <param name="provider">Die Verwaltung aller Sender.</param>
 public FeedSet(IFeedProvider provider)
 {
     m_devices  = Enumerable.Range(0, provider.NumberOfDevices).Select(i => new Device(i, provider)).ToArray();
     m_provider = provider;
 }
 public FeedRecievedEventHandler(IFeedProvider provider)
 {
     this.Provider = provider;
 }
Exemple #38
0
 /// <summary>
 /// Erstellt ein neues Gerät.
 /// </summary>
 /// <param name="index">Die laufende Nummer des Gerätes.</param>
 /// <param name="provider">Die Verwaltung aller Quellen.</param>
 public Device(int index, IFeedProvider provider)
 {
     ProviderDevice = provider.GetDevice(index);
     m_provider     = provider;
 }