Exemple #1
0
        /// <summary>
        /// 将验证邮件的验证码写入数据库
        /// </summary>
        /// <param name="param"></param>
        public void SendAuthEmail(SendAuthEmailParameter param)
        {
            using (var context = base.CreateUserContext())
            {
                if (param.Kind != AuthEmailKind.ChangeEmail && !context.Accounts.Any(t => t.AppID == param.AppID && t.Email == param.Email))
                {
                    throw new InvalidInvokeException("Email不存在");
                }

                string userName = context.Accounts.Where(t => t.AppID == param.AppID && t.RowID == param.UserID).Select(t => t.UserName).Single();
                Guid   authCode = Guid.NewGuid();
                switch (param.Kind)
                {
                case AuthEmailKind.SignUp:
                case AuthEmailKind.ChangeEmail:
                    Utility.SendVerifyEmail(param.AppID, userName, param.Email, authCode);
                    break;

                case AuthEmailKind.FindPassword:
                    Utility.SendFindPwdEmail(param.AppID, userName, param.Email, authCode);
                    break;
                }

                var entity = new EmailAuth();
                EntityMapper.Map <SendAuthEmailParameter, EmailAuth>(param, entity);
                entity.AuthKey    = authCode.ToString();
                entity.CreateDate = DateTime.Now;
                entity.Status     = (int)ActivationStatus.NotActive;
                context.EmailAuths.Add(entity);
                context.SaveChanges();
            }
        }
Exemple #2
0
 public void SendAuthEmail(SendAuthEmailParameter param)
 {
     mgr.SendAuthEmail(param);
 }