public async Task <IActionResult> Connect() { NationConnectModel model = new NationConnectModel(); var user = await _userManager.GetUserAsync(User); if (user == null) { StatusMessage = "Failed to find SpookVooper user. Try logging in?"; return(View()); } return(View(model)); }
public async Task <IActionResult> Connect(NationConnectModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.GetUserAsync(User); if (user == null) { StatusMessage = "Error: Failed to find SpookVooper user. Try logging in?"; return(RedirectToAction("Connect")); } using (HttpClient client = new HttpClient()) { // client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("SpookVooper")); using (var response = await client.GetAsync($"https://www.nationstates.net/cgi-bin/api.cgi?a=verify&nation={model.NationName}&checksum={model.Password}")) { if (response.IsSuccessStatusCode) { string resp = await response.Content.ReadAsStringAsync(); if (resp.Contains("1") && !resp.Contains("0")) { user.nationstate = model.NationName; await _userManager.UpdateAsync(user); StatusMessage = $"Successfully connected to {model.NationName}!"; return(RedirectToAction("Index", controllerName: "Home")); } else { StatusMessage = $"Error: Failed to connect to {model.NationName}."; return(RedirectToAction("Connect")); } } else { StatusMessage = $"Error: Failed to connect to {model.NationName}."; return(RedirectToAction("Connect")); } } } }