Beispiel #1
0
        public static void Main()
        {
            var serverAddress = ConfigurationManager.AppSettings.Get("ServerAddress");
            var serverPort = int.Parse(ConfigurationManager.AppSettings.Get("ServerPort"));

            var clientAddress = ConfigurationManager.AppSettings.Get("ClientAddress");
            var clientPort = int.Parse(ConfigurationManager.AppSettings.Get("ClientPort"));

            var cs = new UdpClientServer();
            var serverChannel = new UdpCommunicationChannel(cs, new ChannelConfig { Address = serverAddress, Port = serverPort });
            var clientChannel = new UdpCommunicationChannel(cs, new ChannelConfig { Address = clientAddress, Port = clientPort });

            _userService = new GitHubUserSearchService(new HttpClientFactory());
            _githubBrowser = new GithubBrowser(new HttpClientFactory());

            var userListener = new Listener<UserQuery, UserResponse>(clientChannel, serverChannel);
            userListener.ListenObservable(GetUser);

            var repoListener = new Listener<RepoQuery, RepoResponse>(clientChannel, serverChannel);
            repoListener.ListenObservable(GetRepo);

            var favListener = new Listener<FavQuery, FavResponse>(clientChannel, serverChannel);
            favListener.ListenObservable(AddToFav);

            var publisher = new Publisher<RepoNotification>(serverChannel);
            _githubBrowser.NewCommitsFeed
                .Select(c => new RepoNotification { Commit = c })
                .Subscribe(publisher);

            Console.ReadLine();
        }
Beispiel #2
0
 public RepoWatcher(IGithubBrowser browser, Repo repoToWatch, IScheduler backgroundScheduler)
 {
     _timerDisposal = Observable
         .Interval(_defaultRefreshSpan, backgroundScheduler)
         .SelectMany(_ => browser.GetCommits(repoToWatch))
         .Subscribe(OnCommitsArrived);
 }
Beispiel #3
0
        public Demos()
        {
            var factory = new HttpClientFactory();

            _githubBrowser     = new GithubBrowser(factory);
            _userSearchService = new GitHubUserSearchService(factory);
        }
Beispiel #4
0
 public RepoWatcher(IGithubBrowser browser, Repo repoToWatch, IScheduler backgroundScheduler)
 {
     _timerDisposal = Observable
                      .Interval(_defaultRefreshSpan, backgroundScheduler)
                      .SelectMany(_ => browser.GetCommits(repoToWatch))
                      .Subscribe(OnCommitsArrived);
 }
Beispiel #5
0
        public static void Main()
        {
            var serverAddress = ConfigurationManager.AppSettings.Get("ServerAddress");
            var serverPort    = int.Parse(ConfigurationManager.AppSettings.Get("ServerPort"));

            var clientAddress = ConfigurationManager.AppSettings.Get("ClientAddress");
            var clientPort    = int.Parse(ConfigurationManager.AppSettings.Get("ClientPort"));

            var cs            = new UdpClientServer();
            var serverChannel = new UdpCommunicationChannel(cs,
                                                            new ChannelConfig {
                Address = serverAddress, Port = serverPort
            });
            var clientChannel = new UdpCommunicationChannel(cs,
                                                            new ChannelConfig {
                Address = clientAddress, Port = clientPort
            });

            _userService   = new GitHubUserSearchService(new HttpClientFactory());
            _githubBrowser = new GithubBrowser(new HttpClientFactory());

            var userListener = new Listener <UserQuery, UserResponse>(clientChannel, serverChannel);

            userListener.ListenObservable(GetUser);

            var repoListener = new Listener <RepoQuery, RepoResponse>(clientChannel, serverChannel);

            repoListener.ListenObservable(GetRepo);

            var favListener = new Listener <FavQuery, FavResponse>(clientChannel, serverChannel);

            favListener.ListenObservable(AddToFav);

            var publisher = new Publisher <RepoNotification>(serverChannel);

            _githubBrowser.NewCommitsFeed
            .Select(c => new RepoNotification {
                Commit = c
            })
            .Subscribe(publisher);

            Console.ReadLine();
        }
Beispiel #6
0
 public Demos()
 {
     var factory = new HttpClientFactory();
     _githubBrowser = new GithubBrowser(factory);
     _userSearchService = new GitHubUserSearchService(factory);
 }