public async Task <bool> PostReportAsync([FromBody] RegistryReport registryReport) { if (registryReport != null) { if (registryReport.URL == null) { registryReport.URL = await RecommendHostNameAsync(); } var url = registryReport.URL; lock (Reports) { registryReport.Received = DateTime.Now; if (Reports.ContainsKey(url)) { Reports[url] = registryReport; } else { Reports.Add(url, registryReport); } return(true); } } else { return(false); } }
public Task <bool> PostReportAsync([FromBody] RegistryReport registryReport) { if (registryReport != null) { var url = registryReport.URL; lock (Reports) { registryReport.Received = DateTime.Now; if (Reports.ContainsKey(url)) { Reports[url] = registryReport; } else { Reports.Add(url, registryReport); } return(Task.FromResult(true)); } } else { return(Task.FromResult(false)); } }
private void Step() { lock (this) { Processing = true; var herokuAppName = Environment.GetEnvironmentVariable("HEROKU_APP_NAME"); if (herokuAppName != null) { herokuAppName = $"{herokuAppName}.herokuapp.com"; } var report = new RegistryReport { URL = GameConfiguration.PublicURL ?? herokuAppName, Worlds = Worlds.AllWorlds.Select(w => new RegistryReport.World { AdvertisedPlayers = w.Value.AdvertisedPlayerCount, Hook = w.Value.Hook, WorldKey = w.Key }).ToList() }; try { Task.Run(() => { try { return(RegistryClient.Registry.PostReportAsync(report)); } catch (Exception e) { Console.WriteLine($"Registration failure: {e.Message}"); } return(Task.FromResult(0)); }).Wait(HTTPPostTimeout); } catch (Exception e) { Console.WriteLine($"Registration failure: {e.Message}"); } Processing = false; } }
public async Task <bool> PostReportAsync(RegistryReport registryReport) { return(await RegistryClient.APICallAsync <bool>(HttpMethod.Post, APIEndpoint.RegistryReport, bodyContent : registryReport)); }