コード例 #1
0
        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."
            }));
        }