BistroDriveWebApp.Controllers.ApiController.LoginMethod C# (CSharp) Method

LoginMethod() private method

private LoginMethod ( JsonRequestBody json ) : Task
json JsonRequestBody
return Task
        private async Task<JsonRespondBody> LoginMethod(JsonRequestBody json)
        {
            if (json.Parameters.ContainsKey("login") == false || json.Parameters.ContainsKey("password") == false)
            {
                return new JsonRespondBody { Status = "error", Error = "Invalid parameters" };
            }
            string login = json.Parameters["login"];
            string password = json.Parameters["password"];
            string uname = login;
            //проверка логина и пароля на корректность
            var singingresult = await SignInManager.PasswordSignInAsync(login, password, false, false);
            if (singingresult == SignInStatus.Failure)
            {
                var suser = await UserManager.FindByEmailAsync(login);
                if (suser == null)
                {
                    return new JsonRespondBody { Status = "Failure", Error = "Invalid login or password" };
                }
                singingresult = await SignInManager.PasswordSignInAsync(suser.UserName, password, false, false);
                if (singingresult == SignInStatus.Failure)
                {
                    return new JsonRespondBody { Status = "Failure", Error = "Invalid login or password" };
                }
                uname = suser.UserName;
            }
            var user = DataManager.User.GetUserByName(uname);
            JsonRespondBody result = new JsonRespondBody { Status = "OK" };
            //формируем результат
            usertoken token = DataManager.User.GenerateToken(user.Id);
            UserSerealizerBody ub = GetUserInfo(user.Id);
            ub.Token = token.Token;
            result.Result = ub;
            return result;
        }