public async Task <IDataResult <TokenModel> > SignInAsync(SignInModel signInModel) { var validation = new SignInModelValidator().Valid(signInModel); if (!validation.Success) { return(new ErrorDataResult <TokenModel>(validation.Message)); } var signedInModel = await UserRepository.SignInAsync(signInModel); validation = new SignedInSignInModelValidator().Valid(signedInModel); if (!validation.Success) { return(new ErrorDataResult <TokenModel>(validation.Message)); } if (!UserDomainService.ValidatePassword(signedInModel.SignIn, signInModel.Password)) { return(new ErrorDataResult <TokenModel>(Texts.LoginPasswordInvalid)); } var tokenModel = UserDomainService.CreateToken(signedInModel); var addUserLogModel = new AddUserLogModel(signedInModel.UserId, LogType.SignIn); await UserLogApplicationService.AddAsync(addUserLogModel); return(new SuccessDataResult <TokenModel>(tokenModel)); }