예제 #1
0
        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));
        }
예제 #2
0
        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"));
                    }
                }
            }
        }