Пример #1
0
        public IHttpActionResult SendValidationCode(UserModel_Email userModel)
        {
            if (userModel == null)
            {
                var errorMessage = _messages.GetMessage(Generic.NullObject);
                return(BadRequest(errorMessage));
            }
            var user = _userRep.GetAll().Where(u => u.Email == userModel.Email).SingleOrDefault();

            if (user != null)
            {
                var errorMessage = _messages.GetMessage(Custom.Conflict, "User", "Email");
                return(Conflict($"There already exists an user with the mail {userModel.Email}."));
            }

            try
            {
                var code = _random.GetRandomNumber(1000, 9999).ToString();
                _memCache.Add(code, code, _dateTime.GetDateOffSet().AddMinutes(5));

                _mailSender.SendMail(userModel.Email, "Validation code",
                                     $"Here is your validation code: {code}");
                var errorMessage = _messages.GetMessage(Email.MailSucceded_Code);
                return(Ok(errorMessage));
            }
            catch
            {
                var errorMessage = _messages.GetMessage(Email.MailFailed);
                return(ExpectationFailed(errorMessage));
            }
        }
Пример #2
0
        public IHttpActionResult SendResetPasswordCode(UserModel_Email userModel)
        {
            if (userModel == null)
            {
                var errorMessage = _messages.GetMessage(Generic.NullObject);
                return(BadRequest(errorMessage));
            }
            var user = _userRep.GetAll().Where(u => u.Email == userModel.Email).SingleOrDefault();

            if (user == null)
            {
                var errorMessage = _messages.GetMessage(Custom.NotFound, "User", "Email");
                return(NotFound(errorMessage));
            }
            try
            {
                var code = _random.GetRandomNumber(1000, 9999).ToString();
                _memCache.Add(code, code, _dateTime.GetDateOffSet().AddMinutes(5));

                _mailSender.SendMail(userModel.Email, "Reset password",
                                     $"Here is your password reset code: {code}");
                var message = _messages.GetMessage(Email.MailSucceded_Code);
                return(Ok(message));
            }
            catch
            {
                var errorMessage = _messages.GetMessage(Email.MailFailed);
                return(ExpectationFailed(errorMessage));
            }
        }