private Task Run(CancellationToken ct) { if (AppId == (uint)SteamGameIds.Arma3) { return(SteamActions.PerformArmaSteamAction(async api => { SteamApi = api; await RunWebsite(ct).ConfigureAwait(false); }, (uint)SteamGameIds.Arma3, _steamSessionFactory)); } SteamApi = new DummyApi(); return(DoWithSteamSession(() => RunWebsite(ct))); }
private static async Task <IList <ArmaServerInfo> > PerformAction(ISteamApi steamApi, ServerFilterWrap filter) { using (var sb = await SteamActions.CreateServerBrowser(steamApi).ConfigureAwait(false)) { using (var cts = new CancellationTokenSource()) { var obs = await sb.GetServersInclDetails(cts.Token, filter, true) .ConfigureAwait(false); var s = await obs.Take(10).ToList(); cts.Cancel(); return(s); } } }
public async Task GetServers() { LoggingSetup.Setup("Tests"); LockedWrapper.callFactory = new SafeCallFactory(); // workaround for accessviolation errors var serverFilterBuilder = ServerFilterBuilder.Build(); serverFilterBuilder.FilterByAddresses(new[] { new IPEndPoint(IPAddress.Parse("5.189.150.147"), 2302), new IPEndPoint(IPAddress.Parse("5.189.136.56"), 2302), new IPEndPoint(IPAddress.Parse("80.241.208.192"), 2302) }); var s = await SteamActions.PerformArmaSteamAction( steamApi => PerformAction(steamApi, serverFilterBuilder.GetServerFilterWrap()), (uint)SteamGameIds.Arma3, new SteamSession.SteamSessionFactory()).ConfigureAwait(false); s.Count.Should().Be(3); var json = s.ToJson(true); Console.WriteLine(json); @"C:\temp\crawl\arma-servers.json".ToAbsoluteFilePath().WriteText(json); }
protected Task <ServerBrowser> CreateArma3ServerBrowser() => SteamActions.CreateServerBrowser(_steamApi);