public MainViewModel() { _set = Settings.Load(); StarListenerCommand = new RealyCommand(StarListener); StartParsingCommand = new RealyCommand(StartParsing); StopParsingCommand = new RealyCommand(StopParsing); UpdateBaseCommand = new RealyCommand(UpdateBase); List <Bookmaker> bookmakers = new List <Bookmaker> { new Bookmaker() { Name = "Olimp", Site = _set.OlimpUrl }, new Bookmaker() { Name = "Fonbet", Site = _set.FonbetUrl }, new Bookmaker() { Name = "Marafon", Site = _set.MarafonUrl }, new Bookmaker() { Name = "Zenit", Site = _set.ZenitUrl }, new Bookmaker() { Name = "Parimatch", Site = _set.PariMatchUrl } }; Bookmakers = new ObservableCollection <Bookmaker>(bookmakers); _manager = new ParserManager(_set.OlimpUrl, _set.FonbetUrl, _set.MarafonUrl, _set.ZenitUrl, _set.PariMatchUrl, _set.UsingProxy); _forkFinder = new ForkFinder(_manager); _server = new ServerManager(_forkFinder); //Проверяем был ли сервер запущен после обновления string[] args = Environment.GetCommandLineArgs(); bool isUpdate = false; foreach (string arg in args) { if (arg != "update") { continue; } isUpdate = true; break; } if (isUpdate) { StarListenerCommand.Execute(null); #if !DEBUG StartParsingCommand.Execute(null); #endif } }
private void StartParsing() { if (!Start) { if (_manager == null) { _manager = new ParserManager(_set.OlimpUrl, _set.FonbetUrl, _set.MarafonUrl, _set.ZenitUrl, _set.PariMatchUrl, _set.UsingProxy); } _manager.Start(); if (_forkFinder == null) { _forkFinder = new ForkFinder(_manager); } _forkFinder.Start(); foreach (var key in Bookmakers) { key.Status = WorkStatus.Work; } Logger.Write("Сбор данных успешно запущен!"); Start = true; } else { MessageBox.Show("Парсинг уже запущен!"); } }
public async Task ThrowsWhenNoPushableForkCanBeFound() { var fallbackFork = DefaultFork(); var forkFinder = new ForkFinder(Substitute.For <IGitHub>(), Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.PreferFork, "testUser", fallbackFork); Assert.That(fork, Is.Null); }
public async Task ThrowsWhenNoPushableForkCanBeFound() { var fallbackFork = DefaultFork(); var forkFinder = new ForkFinder(Substitute.For <IGithub>(), MakePreferForkSettings(), new NullNuKeeperLogger()); var fork = await forkFinder.FindPushFork("testUser", fallbackFork); Assert.That(fork, Is.Null); }
public async Task FallbackForkIsNotUsedWhenItIsNotPushable() { var fallbackFork = DefaultFork(); var fallbackRepoData = RepositoryBuilder.MakeRepository(true, false); var github = Substitute.For <IGitHub>(); github.GetUserRepository(fallbackFork.Owner, fallbackFork.Name) .Returns(fallbackRepoData); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.PreferFork, "testUser", fallbackFork); Assert.That(fork, Is.Null); }
public async Task SingleRepoOnlyModeWillNotPreferFork() { var fallbackFork = DefaultFork(); var userRepo = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGitHub>(); github.GetUserRepository(Arg.Any <string>(), Arg.Any <string>()) .Returns(userRepo); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.SingleRepositoryOnly, "testUser", fallbackFork); Assert.That(fork, Is.EqualTo(fallbackFork)); }
public async Task WhenUnsuitableUserForkIsFoundItIsNotUsed() { var fallbackFork = NoMatchFork(); var userRepo = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGitHub>(); github.GetUserRepository(Arg.Any <string>(), Arg.Any <string>()) .Returns(userRepo); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.PreferFork, "testUser", fallbackFork); Assert.That(fork, Is.EqualTo(fallbackFork)); }
public async Task FallbackForkIsUsedWhenItIsFound() { var fallbackFork = DefaultFork(); var fallbackRepoData = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGithub>(); github.GetUserRepository(fallbackFork.Owner, fallbackFork.Name) .Returns(fallbackRepoData); var forkFinder = new ForkFinder(github, MakePreferForkSettings(), Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork("testUser", fallbackFork); Assert.That(fork, Is.Not.Null); Assert.That(fork, Is.EqualTo(fallbackFork)); }
public async Task WhenSuitableUserForkIsFound_ThatMatchesParentHtmlUrl_ItIsUsedOverFallback() { var fallbackFork = new ForkData(new Uri(RepositoryBuilder.ParentHtmlUrl), "testOrg", "someRepo"); var userRepo = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGitHub>(); github.GetUserRepository(Arg.Any <string>(), Arg.Any <string>()) .Returns(userRepo); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.PreferFork, "testUser", fallbackFork); Assert.That(fork, Is.Not.EqualTo(fallbackFork)); AssertForkMatchesRepo(fork, userRepo); }
public async Task WhenSuitableUserForkIsFoundItIsUsedOverFallback() { var fallbackFork = DefaultFork(); var userRepo = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGithub>(); github.GetUserRepository(Arg.Any <string>(), Arg.Any <string>()) .Returns(userRepo); var forkFinder = new ForkFinder(github, MakePreferForkSettings(), Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork("testUser", fallbackFork); Assert.That(fork, Is.Not.EqualTo(fallbackFork)); AssertForkMatchesRepo(fork, userRepo); }
public async Task SingleRepoOnlyModeWillNotUseForkWhenUpstreamIsUnsuitable() { var fallbackFork = DefaultFork(); var github = Substitute.For <IGitHub>(); var defaultRepo = RepositoryBuilder.MakeRepository(true, false); github.GetUserRepository(fallbackFork.Owner, fallbackFork.Name) .Returns(defaultRepo); var userRepo = RepositoryBuilder.MakeRepository(); github.GetUserRepository("testUser", fallbackFork.Name) .Returns(userRepo); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork(ForkMode.SingleRepositoryOnly, "testUser", fallbackFork); Assert.That(fork, Is.Null); }
public async Task WhenUserForkIsNotFoundItIsCreated() { var fallbackFork = DefaultFork(); var userRepo = RepositoryBuilder.MakeRepository(); var github = Substitute.For <IGitHub>(); github.GetUserRepository(Arg.Any <string>(), Arg.Any <string>()) .Returns((Repository)null); github.MakeUserFork(Arg.Any <string>(), Arg.Any <string>()) .Returns(userRepo); var forkFinder = new ForkFinder(github, Substitute.For <INuKeeperLogger>()); var actualFork = await forkFinder.FindPushFork(ForkMode.PreferFork, "testUser", fallbackFork); await github.Received(1).MakeUserFork(Arg.Any <string>(), Arg.Any <string>()); Assert.That(actualFork, Is.Not.Null); Assert.That(actualFork, Is.Not.EqualTo(fallbackFork)); }
public async Task PreferSingleRepoModeWillUseForkWhenUpstreamIsUnsuitable() { var fallbackFork = DefaultFork(); var github = Substitute.For <IGithub>(); var defaultRepo = RepositoryBuilder.MakeRepository(true, false); github.GetUserRepository(fallbackFork.Owner, fallbackFork.Name) .Returns(defaultRepo); var userRepo = RepositoryBuilder.MakeRepository(); github.GetUserRepository("testUser", fallbackFork.Name) .Returns(userRepo); var forkFinder = new ForkFinder(github, MakePreferSingleRepoSettings(), Substitute.For <INuKeeperLogger>()); var fork = await forkFinder.FindPushFork("testUser", fallbackFork); Assert.That(fork, Is.Not.EqualTo(fallbackFork)); AssertForkMatchesRepo(fork, userRepo); }
public ServerManager(ForkFinder finder) { _finder = finder; }