Beispiel #1
0
        public async Task <IActionResult> SignIn(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    _accountService.SetCurrentContext(HttpContext, Url);
                    var user = await _userManager.FindByEmailAsync(model.Email);

                    if (await _userManager.UserIdentityExists(user, model.Password, GlobalVariables.CustomerRole))
                    {
                        if (!user.EmailConfirmed)
                        {
                            return(Unauthorized(new BadResponseResult {
                                message = "email is not confirmed"
                            }));
                        }
                        var response = _accountService.GetSigningInResponseModel(user, GlobalVariables.CustomerRole);
                        _transactionHelper.CommitChanges();
                        return(Ok(response));
                    }
                    return(NotFound(new UnauthorizedObjectResult("email or password was invalid")));
                }
                catch (Exception ex)
                {
                    _transactionHelper.RollBackChanges();
                    return(BadRequest(ex.Message));
                }
            }
            return(BadRequest(ModelState));
        }