public async Task <ActionResult> RegisterAsyce([FromBody] MemberRegisterResource RegisterResource) // 會員註冊 { if (ModelState.IsValid) { //把註冊資料傳入資料庫 #region 寫入資料庫 string authcode = _MailService.GetValidateCode(); string error = await _MemberService.Register(RegisterResource, authcode); if (error == "信箱已被註冊") { return(BadRequest(error)); } #endregion if (error == "Success") { #region 寄信 string CreateTime = DateTime.Now.ToString(); //宣告Email驗證用的Url Uri ValidateUrl = new Uri(Url.Link("EmailApi", new { Email = RegisterResource.Email, AuthCode = authcode, CreateTime = CreateTime })); error = await _MailService.RegisterMail(authcode, RegisterResource, ValidateUrl); #endregion return(Ok("信件已寄出")); } else { return(BadRequest("寫入資料庫失敗")); } } else { return(BadRequest("資料未過驗證")); } }
public async Task <string> Register(MemberRegisterResource RegisterResource, string AuthCode) { string result = string.Empty; var user = await _context.MemberModel.SingleOrDefaultAsync(b => b.Email == RegisterResource.Email); if (user != null) { return("信箱已被註冊"); } #region 將資料寫入資料庫 var member = _mapper.Map <MemberRegisterResource, MemberModel>(RegisterResource); var uuid = Guid.NewGuid().ToString(); member.Id = uuid; //密碼加密 member.Password = _tools.HashPassword(member.Password); member.AuthCode_Register = AuthCode; member.IsAdmin = false; try { //將資料加入Context _context.Add(member); //儲存變更 await _context.SaveChangesAsync(); result = "Success"; } catch (Exception) { result = "Error"; } #endregion return(result); }
public async Task <string> RegisterMail(string authcode, MemberRegisterResource RegisterResource, Uri ValidateUrl) { string result = string.Empty; try { #region 寄信 //取得寫好的驗證信範本內容 var Webroot = _HostingEnvironment.WebRootPath; var file = System.IO.Path.Combine(Webroot, "RegisterMail.html"); string TempMail = System.IO.File.ReadAllText(file); string CreateTime = DateTime.Now.ToString(); //藉由Service將使用者資料填入驗證信範本中 string MailBody = this.GetRegisterMailBody(TempMail, CreateTime, ValidateUrl.ToString().Replace("%3F", "?")); //呼叫Service寄出驗證信 await this.SendRegisterMail(MailBody, RegisterResource.Email); #endregion } catch (Exception) { result = "寄信失敗"; } return(result); }
public async Task <ActionResult <MemberRegisterResource> > GetDataAsync(string Email) // 讀取個人會員資料 { MemberRegisterResource data = await _MemberService.GetData(Email); if (data != null) { return(Ok(data)); } return(BadRequest("查無資料")); }
public async Task <MemberRegisterResource> GetData(string Email) { MemberRegisterResource data = new MemberRegisterResource(); #region 入資料 try { MemberModel MemberData = await _context.MemberModel.SingleOrDefaultAsync(u => u.Email == Email); data = _mapper.Map <MemberModel, MemberRegisterResource>(MemberData); return(data); } catch (Exception) { data = null; } #endregion return(data); }
public async Task <ActionResult> ReSendEmail(string Email) // 重新寄送驗證信 { MemberRegisterResource member = await _MemberService.GetData(Email); if (member != null) { #region 寫入資料庫 string authcode = _MailService.GetValidateCode(); string error = await _MemberService.Register(member, authcode); #endregion #region 寄信 string CreateTime = DateTime.Now.ToString(); //宣告Email驗證用的Url Uri ValidateUrl = new Uri(Url.Link("EmailApi", new { Email = member.Email, AuthCode = authcode, CreateTime = CreateTime })); await _MailService.RegisterMail(authcode, member, ValidateUrl); #endregion return(Ok("寄信成功")); } return(BadRequest("尚未註冊!")); }
public async Task <ActionResult> ForgetPassword(string email) // 忘記密碼 { MemberRegisterResource data = await _MemberService.GetData(email); if (data != null) { #region 寄信 string password = await _MemberService.GetPassword(email); string result = await _MailService.ForgetPasswordMail(data.Name, password, data.Email); #endregion if (result == "寄信成功") { return(Ok(result)); } return(BadRequest(result)); } else { return(BadRequest("無此帳號")); } }