public async Task <ResultDTO> SignIn([FromBody] SignInDTO model) { var result = default(ResultDTO); if (!ModelState.IsValid) { var errors = ModelStateCustomValidator.GetErrorsFromModel(ModelState); result = new ErrorResultDTO { Status = 403, Message = "Invalid sign in attempt", Errors = errors }; } else { var loginResult = await signInManager.PasswordSignInAsync(model.Email, model.Password, false, false); if (!loginResult.Succeeded) { result = new ErrorResultDTO { Status = 403, Message = "Sign in error", Errors = new string[] { "Incorrect email or password" } }; } else { var user = await userManager.FindByEmailAsync(model.Email); await signInManager.SignInAsync(user, false); result = new AuthResultDTO { Status = 200, Message = "Ok", Token = JWTTokenService.GenerateToken(user) }; } } return(result); }