public async Task <IActionResult> Register(ViewModels.Members.Register registerMember)
        {
            if (ModelState.IsValid)
            {
                var newMember = _mapper.Map <ApplicationUser>(registerMember);

                var result = await _memberService.RegisterAsync(newMember, registerMember.Password);

                if (result.Succeeded)
                {
                    var authCode = await _userManager.GenerateEmailConfirmationTokenAsync(newMember);

                    authCode = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(authCode));
                    string     tempMail    = System.IO.File.ReadAllText("Views/Shared/RegisterEmailTemplate.html");
                    UriBuilder validateUrl = new UriBuilder("http", "localhost", Request.Host.Port ?? 5000)
                    {
                        Path = Url.Action("EmailValidate", "Members",
                                          new
                        {
                            Account  = newMember.UserName,
                            AuthCode = authCode
                        })
                    };
                    string mailBody = _mailService.GetRegiesterMailBody(tempMail,
                                                                        newMember.Name,
                                                                        validateUrl.ToString().Replace("%3F", "?"));
                    await _mailService.SendRegisterMailAsync(mailBody, newMember.Email);

                    StatusMessageHelper.AddMessage(message: "註冊成功,請去收信進行Email驗證", dismissible: false, keep: true);

                    return(RedirectToAction("RegisterResult"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }

            registerMember.Password      = null;
            registerMember.PasswordCheck = null;

            return(View(registerMember));
        }
 public IActionResult AccountCheck(ViewModels.Members.Register registerMember)
 {
     return(Json(_memberService.AccountCheckAsync(registerMember.Account)));
 }