Пример #1
0
        public virtual async Task <NetResult <LoginResult> > Login([FromBody] LoginViewModal model)
        {
            try
            {
                var result = await _user.Login(model);

                if (result.Item1 != null)
                {
                    return(result.Item1);
                }
                if (result.Item2 != null || result.Item2.ShouldSendOtp)
                {
                    var otp = RepositoryState.RandomInt();
                    _user.SetOtp(result.Item2, otp);
                    SenNotify(result.Item2, otp);
                    return(new LoginResult()
                    {
                        UserName = result.Item2.UserName,
                        UserId = result.Item2.Id.ToString(),
                        IsSentOtp = true,
                    });
                }
                return(null);
            }
            catch (Exception ext)
            {
                return(ext);
            }
        }
Пример #2
0
        public virtual async Task <NetResult <ResponseData> > RestorePassword(string userName)
        {
            try
            {
                var otp  = RepositoryState.RandomInt();
                var user = await _user.GetByUserName(userName);

                if (user == null)
                {
                    throw new CoreException("User not found");
                }
                user.Token = RepositoryState.GenerateRandomString(24);
                _user.SetOtp(user, otp);
                SenNotify(user, otp);
                return(new ResponseData()
                {
                    Result = new { Token = user.Token, UserName = user.UserName, IsSendSms = true }
                });
            }
            catch (Exception ext)
            {
                return(ext);
            }
        }