public async Task <ActionResult> Index(MemberRegisterViewModel vm, FormCollection frm)
        {
            try
            {
                string result = string.Empty;

                //var personalPhotoPath = Server.MapPath("~/Content/Personal");
                string personalPhotoPath = Server.MapPath(System.Web.Configuration.WebConfigurationManager.AppSettings["MemberPhotoPath"].ToString());
                //var familyPhotoPath = Server.MapPath("~/Content/Family");

                string tempPhotoPath = Server.MapPath(System.Web.Configuration.WebConfigurationManager.AppSettings["TempPhotoPath"].ToString());

                //Insert new register member and family details
                //result = await vm.RegisterMember(vm, frm, personalPhotoPath, familyPhotoPath, tempPhotoPath);
                result = await vm.RegisterMember(vm, frm, personalPhotoPath, tempPhotoPath);

                TempData["Message"] = result;
                return(RedirectToAction("Dashboard", "MemberShip"));
            }
            catch (Exception ex)
            {
                TempData["Message"] = ex.Message.ToString();
                return(RedirectToAction("Index", "MemberRegister"));
            }
        }
Beispiel #2
0
        public ActionResult Register(MemberRegisterViewModel input)
        {
            MemberViewModel memberVM = _memberservice.GetMember(x => x.MemberRegEmail == input.Email);

            if (memberVM != null)
            {
                return(RedirectToAction("RegisterFail", "Member"));
            }
            if (ModelState.IsValid)  //這裡是後端驗證input欄位對不對
            {
                MemberViewModel vm = new MemberViewModel()
                {
                    MemberName     = input.Name,
                    MemberRegEmail = input.Email,
                    MemberPassword = input.Password,
                    MemberBirth    = StringtoDate(input.BirthDay),
                    Gender         = input.gender,
                    Permission     = 1
                };
                string registerResult = _api.CreateMember(vm);
                if (registerResult == "成功")
                {
                    return(RedirectToAction("RegisterSuccess", "Member"));
                }
                else
                {
                    return(RedirectToAction("RegisterFail", "Member"));
                }
            }
            return(RedirectToAction("RegisterFail", "Member"));
        }
        public async Task<ActionResult> MemberRegister(MemberRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = model.GetUser();
                var member = model.GetMemberDto();

                var phone = model.GetPhone();
                var address = model.GetAddress();

                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await _hcSerivice.CreateMemberAsync(member, phone, address);

                    var currentUser = await UserManager.FindByEmailAsync(user.Email);
                    var roleResult = await UserManager.AddToRoleAsync(currentUser.Id, "Member");

                    UserManager.AddClaim(currentUser.Id, new Claim(ClaimTypes.Role, "Member"));

                    if (roleResult.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                        return RedirectToAction("Index", "Home");
                    }
                    AddErrors(roleResult);
                }
                AddErrors(result);
            }

            return View(model);
        }
        public IActionResult Register(MemberRegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                bool errorData = false;
                if (!_memberService.CheckEmailIsAvailable(viewModel.Email))
                {
                    errorData = true;
                    ModelState.AddModelError("Email", "Cette e-mail est utilisé !");
                }

                if (!_memberService.CheckPseudoIsAvailable(viewModel.Pseudo))
                {
                    errorData = true;
                    ModelState.AddModelError("Pseudo", "Ce pseudo est utilisé (Tips: Met des chiffre :p)");
                }

                if (!errorData)
                {
                    Member member = _memberService.Create(new Member()
                    {
                        Email    = viewModel.Email,
                        Pseudo   = viewModel.Pseudo,
                        Password = viewModel.Password1
                    });

                    HttpContext.Session.SetMember(member);

                    return(RedirectToAction("Index", "Home"));
                }
            }
            return(View(viewModel));
        }
        public async Task <IActionResult> Register(MemberRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var member = mapper.Map <Member>(model);
                _context.Add(member);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View());
        }
 public async Task<ActionResult> MemberRegister()
 {
     var model = new MemberRegisterViewModel
     {
         SexOptions = new List<SelectizeItem<int>>
         {
             new SelectizeItem<int>(Enum.GetName(typeof (Sex), Sex.Male), (int) Sex.Male),
             new SelectizeItem<int>(Enum.GetName(typeof (Sex), Sex.Female), (int) Sex.Female)
         }
     };
     return View(model);
 }
Beispiel #7
0
        public ActionResult Register(MemberRegisterViewModel RegisterMember)
        {
            //判斷頁面資料是否經過驗證
            if (ModelState.IsValid)
            {
                // 將頁面資料中的密碼欄位填入
                RegisterMember.newMember.Password = RegisterMember.Password;

                //取得信箱驗證碼
                string AuthCode = mailService.GetValidateCode();

                //將信箱驗證碼填入
                RegisterMember.newMember.AuthCode = AuthCode;

                //呼叫Serrvice註冊新會員
                membersService.Register(RegisterMember.newMember);

                //取得寫好的驗證信範本內容
                string TempMail = System.IO.File.ReadAllText(Server.MapPath("~/Views/Shared/RegisterEmailTemplate.html"));

                //宣告Email驗證用Url
                UriBuilder ValidateUrl = new UriBuilder(Request.Url)
                {
                    Path = Url.Action("EmailValidate", "Members"
                                      , new
                    {
                        Account  = RegisterMember.newMember.Account,
                        AuthCode = AuthCode
                    })
                };

                //藉由Service將使用者資料夾填入驗證信範本
                string MailBody = mailService.GetRegisterMailBody(TempMail, RegisterMember.newMember.Name,
                                                                  ValidateUrl.ToString().Replace("%3F", "?"));

                //呼叫Service寄出驗證信
                mailService.SendRegisterMail(MailBody, RegisterMember.newMember.Email);

                //用TempData儲存註冊訊息
                TempData["RegisterState"] = "註冊成功,請去收信以驗證Email";

                //重新導向頁面
                return(RedirectToAction("RegisterResult"));
            }
            //未經驗證清空密碼相關欄位
            RegisterMember.Password      = null;
            RegisterMember.PasswordCheck = null;
            //將資料回填至View中
            return(View(RegisterMember));
        }
        public async Task <JsonResult> InsertFamilyMemberDetails(MemberRegisterViewModel vm)
        {
            string result = string.Empty;

            try
            {
                result = await vm.InsertFamilyMemberDetails(vm);
            }
            catch (Exception ex)
            {
                result = ex.Message.ToString();
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult> Edit(MemberRegisterViewModel vm)
        {
            string result = string.Empty;
            //var personalPhotoPath = Server.MapPath("~/Content/Personal");
            string personalPhotoPath = Server.MapPath(System.Web.Configuration.WebConfigurationManager.AppSettings["MemberPhotoPath"].ToString());
            string tempPhotoPath     = Server.MapPath(System.Web.Configuration.WebConfigurationManager.AppSettings["TempPhotoPath"].ToString());

            //Insert new register member and family details
            result = await vm.UpdateRegisterMember(vm, personalPhotoPath, tempPhotoPath);//, frm, personalPhotoPath, familyPhotoPath);

            TempData["Message"] = result;

            return(RedirectToAction("Dashboard", "Membership"));

            //return View(vm);
        }
        public Member AddMember(MemberRegisterViewModel member)
        {
            //Member newMember = _connection.DbPath.ExecStoredProcedure<Member>("AddMember",
            //new
            //{
            //    member.NickName,
            //    member.PasswordHash,
            //    member.PasswordSalt

            //}).FirstOrDefault();
            //return newMember;
            //FAKE DATA
            return(new Member()
            {
                NickName = member.NickName
            });
        }
Beispiel #11
0
        /* Custom method to get the physical path of the image folder and its steps;
         *  // uploading the file in images folder in wwwroot folder
         *  // using Ihosting environment service of core to get the physical path of the wwwroot folder
         *  // Guid is used for unique filename
         *  // CopyTo method of IFormFile property of the photo
         */
        private string processUploadedFile(MemberRegisterViewModel model)
        {
            string uniqueFileName = null;

            if (model.Photo != null)
            {
                string uploadfolder = Path.Combine(hostingEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
                string filePath = Path.Combine(uploadfolder, uniqueFileName);
                // with "Using", "fileStream" will be disposed after executing the statements inside the braces
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Photo.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
Beispiel #12
0
        public IActionResult Register(MemberRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = processUploadedFile(model);

                // create new member object to copy the properties from incoming object to new member.
                Member newMember = new Member
                {
                    Name       = model.Name,
                    Email      = model.Email,
                    Department = model.Department,
                    PhotoPath  = uniqueFileName
                };

                _memberRepository.Add(newMember);
                return(RedirectToAction("details", new { id = newMember.Id }));
            }
            return(View());
        }
        public ResultSet <Member> AddMember(MemberRegisterViewModel member)
        {
            var result = new ResultSet <Member>();

            /******This nickname is exists*******************/
            if (_memberRepository.GetMemberByNickname(member.NickName) != null)
            {
                result.Message = "This nickname is already in use";
                return(result);
            }


            if (!string.IsNullOrEmpty(member.Password) && member.Password.Length > 16)
            {
                result.Message = "Invalid password string length";
                return(result);
            }


            if (!string.IsNullOrEmpty(member.Password))
            {
                string hash, salt;
                _hashProvider.GetHashAndSaltString(member.Password, out hash, out salt);
                member.PasswordHash = hash;
                member.PasswordSalt = salt;
            }
            var newMember = _memberRepository.AddMember(member);

            if (newMember != null)
            {
                result.Success = true;
                result.Message = Messages.OperationSuccess;
                result.Object  = newMember;
            }

            return(result);
        }
        public ActionResult Register(MemberRegisterViewModel member, string returnUrl = "")
        {
            var returnModel = new RegistrationLoginViewModel()
            {
                LoginViewModel        = new MemberLoginViewModel(),
                RegistrationViewModel = member,
                Error = Errors(GetModelErrors())
            };

            if (ModelState.IsValid)
            {
                ResultSet <Member> resultMember = _memberBusiness.AddMember(member);

                if (!resultMember.Success)
                {
                    ModelState.AddModelError("Error", resultMember.Message);
                }
            }



            returnModel.Error = Errors(GetModelErrors());
            return(Json(returnModel));
        }
Beispiel #15
0
        public ActionResult Register(MemberRegisterViewModel source)
        {
            string message = "";

            if (ModelState.IsValid)
            {
                #region //檢查信箱是否已經存在
                if (All.MS().CheckNullable(x => x.Email == source.Email))
                {
                    ModelState.AddModelError("EmailExist", "Email已經存在請更換!! This Email already exist");
                    return(View());
                }
                #endregion
                #region //檢查帳號是否已經存在
                if (All.MS().CheckNullable(x => x.MemberAccount.Equals(source.MemberAccount)))
                {
                    ModelState.AddModelError("AccountExist", "此帳號已經存在,請更換帳號!! This Account already registered.");
                    //ViewBag.Message = "此帳號已經存在,請更換帳號!!";
                    return(View());
                }
                #endregion

                string ActivationCode = All.MS().AddMember(source, source.Password);

                #region //寄送帳號啟用信 Send Email to Account
                SendVerifyOrResetEmail(source.Email, ActivationCode);
                message = "註冊成功,驗證帳號連結已寄到您的信箱. Registration successfully done. Account activation link " +
                          " has been sent to your Email : " + source.Email; /*"恭喜!!  " + member.MemberAccount + "  已成功註冊"*/
                #endregion

                ModelState.Clear();//清除 (包含錯誤訊息與模型繫結的資料都會被清空)
                ViewBag.Message = message;
                //return RedirectToAction("Login");
            }
            return(View());
        }
Beispiel #16
0
 //判斷註冊帳號是否被註冊過Action
 public JsonResult AccountCheck(MemberRegisterViewModel RegisterMember)
 {
     //呼叫Service來判斷回傳結果
     return(Json(membersService.AccountCheck(RegisterMember.newMember.Account), JsonRequestBehavior.AllowGet));
 }
        public async Task <IActionResult> Register(MemberRegisterViewModel registerVM)
        {
            #region CheckModelState
            if (!ModelState.IsValid)
            {
                return(View());
            }
            #endregion

            AppUser member = await _userManager.FindByEmailAsync(registerVM.Email);

            #region CheckMemberEmailAndUserName

            if (member != null)
            {
                ModelState.AddModelError("", "Email already used");
                return(View());
            }
            else
            {
                member = await _userManager.FindByNameAsync(registerVM.UserName);

                if (member != null)
                {
                    ModelState.AddModelError("", "Username already used");
                    return(View());
                }
            }
            #endregion

            member = new AppUser
            {
                UserName = registerVM.UserName,
                Email    = registerVM.Email,
                FullName = registerVM.FullName
            };

            var result = await _userManager.CreateAsync(member, registerVM.Password);

            if (!result.Succeeded)
            {
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError("", item.Description);
                }
                return(View());
            }

            await _userManager.AddToRoleAsync(member, "Member");


            ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[]
            {
                new Claim(ClaimTypes.Name, member.UserName),
                new Claim(ClaimTypes.Email, member.Email),
                new Claim(ClaimTypes.Role, "Member")
            }, "Member_Auth");
            ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
            await HttpContext.SignInAsync("Member_Auth", claimsPrincipal);

            return(RedirectToAction("index", "home"));
        }
        public ActionResult Regsiter([Bind(Prefix = "registerModel")] MemberRegisterViewModel model)
        {
            ResponseModel result = new ResponseModel();

            string code = Session["code"] == null ? string.Empty : Session["code"].ToString();

            if (code != model.Code)
            {
                result.Success = false;
                result.Msg     = "验证码错误,请重新获取验证码";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            IMember validatemember = Services.MemberService.GetMembersByPropertyValue("tel", model.Phone).FirstOrDefault();

            if (validatemember != null)
            {
                result.Success    = false;
                result.Msg        = "该手机号已经注册,请用手机号进行登录";
                result.IsRedirect = false;
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            RegisterModel registerModel = RegisterModel.CreateModel();

            registerModel.Email    = model.Phone + "@qq.com";
            registerModel.Password = model.Password;
            registerModel.Name     = "匿名";

            MembershipCreateStatus status;
            //注册用户
            var member = Members.RegisterMember(registerModel, out status, true);

            switch (status)
            {
            case MembershipCreateStatus.DuplicateEmail:
            case MembershipCreateStatus.DuplicateProviderUserKey:
            case MembershipCreateStatus.DuplicateUserName:
            {
                result.Success = false;
                result.Msg     = "用户重复,请重新注册!";
                break;
            }

            case MembershipCreateStatus.InvalidAnswer:
                break;

            case MembershipCreateStatus.InvalidEmail:
            {
                result.Success = false;
                result.Msg     = "邮箱格式不正确请重新输入!";
                break;
            }

            case MembershipCreateStatus.InvalidPassword:
                break;

            case MembershipCreateStatus.InvalidProviderUserKey:
                break;

            case MembershipCreateStatus.InvalidQuestion:
                break;

            case MembershipCreateStatus.InvalidUserName:
                break;

            case MembershipCreateStatus.ProviderError:
                break;

            case MembershipCreateStatus.Success:
            {
                var m = Services.MemberService.GetByUsername(member.UserName);
                m.SetValue("tel", model.Phone);
                //m.SetValue("fundAccount", "1000");
                Services.MemberService.SavePassword(m, model.Password);
                Services.MemberService.Save(m);
                result.Success = true;
                //result.Msg = "欢迎您的加入,您成功注册,我们额外赠送1000元定期宝一个月";
                result.Msg        = "欢迎您的加入,您成功注册";
                result.IsRedirect = true;
                //result.RedirectUrl = "/memberinfo?show=true";
                result.RedirectUrl = "/memberinfo";
                EventHandlers.CustomRaiseEvent.RaiseRegistered(m);
                //赠送5000元定期宝一月期
                //System.Threading.Tasks.Task.Factory.StartNew((ser) =>
                //{
                //    ServiceContext sc = ser as ServiceContext;
                //    IContentType ct = sc.ContentTypeService.GetContentType("PayRecords");

                //    IContent content = sc.ContentService.CreateContent(m.Name + "赠送定期宝", ct.Id, "PayRecords");
                //    content.SetValue("username", m.Name);
                //    content.SetValue("email", m.Username);
                //    content.SetValue("amountCny", 1000);
                //    content.SetValue("mobilePhone", m.GetValue<string>("tel"));
                //    content.SetValue("rechargeDateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                //    content.SetValue("expirationtime", DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss"));
                //    content.SetValue("memberPicker", m.Id);
                //    content.SetValue("payBillno", "注册赠送的定期宝");
                //    content.SetValue("isdeposit", true);
                //    content.SetValue("isexpired", false);
                //    content.SetValue("buyproduct", 2337);
                //    content.SetValue("isGive", true);
                //    sc.ContentService.Save(content);
                //    EventHandlers.CustomRaiseEvent.RaiseContentCreated(content);
                //}, Services);

                break;
            }

            case MembershipCreateStatus.UserRejected:
                break;

            default:
                break;
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
 public MemberRegisterController(MemberRegisterViewModel memberRegisterViewModel)
 {
     this.vm = memberRegisterViewModel;
 }