public IActionResult AuthenticateUser(LoginModel model) { HttpWebRequest request = _requests.CreateLoginRequest(model); using (HttpWebResponse response = request.GetResponseNoException()) { if (response.StatusCode == HttpStatusCode.OK) { _logic.AddUserDetailsToSession(model); JObject deserializedResponseBody = _logic.DeserializeResponse(response); var welcomeString = deserializedResponseBody.SelectToken("welcome").Value <string>(); var welcomeMessage = new WelcomeModel() { WelcomeString = welcomeString }; return(View("Welcome", welcomeMessage)); } if (response.StatusCode == HttpStatusCode.BadRequest) { JObject deserializedResponseBody = _logic.DeserializeResponse(response); try { var message = deserializedResponseBody.SelectToken("message").Value <string>(); var errorModel = new ErrorMessage() { Message = message }; return(View("Error", errorModel)); } catch { return(View("Error", new ErrorMessage() { Message = "Unexpected error." })); } } } return(View("Error", new ErrorMessage() { Message = "Unexpected error." })); }