//public bool MemberRegister(RegisterModel model, string[] roles)
        //{
        //    bool result = false;
        //    if (ModelState.IsValid)
        //    {
        //        if (MembershipService == null)
        //        {
        //            MembershipService = new AccountMembershipService();
        //        }
        //        // Attempt to register the user
        //        MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email, true);

        //        if (createStatus == MembershipCreateStatus.Success)
        //        {
        //            UpdateMemberInfo(model);
        //            Roles.AddUserToRoles(model.UserName, roles);
        //             result = true;
        //        }
        //        else
        //        {
        //            ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus));
        //        }

        //    }
        //    return result;
        //}

        public void UpdateMemberInfo(RegisterModel register)
        {
            MemberInfo memberInfo = new MemberInfo();

            memberInfo.InitiateTypeID = register.InitiateTypeID;
            memberInfo.Name           = register.Name;

            MembershipUser mUser = Membership.GetUser(register.UserName);

            memberInfo.MemberID = (Guid)(mUser.ProviderUserKey);
            _entities.AddToMemberInfos(memberInfo);

            _entities.SaveChanges();
        }
        public ActionResult Create(OrdinaryMemberInfo OrdinaryMemberInfo, PublicMemberInfo PublicMemberInfo, FormCollection collection)
        {
            //SMCHDBLocalEntities _localEntities = new SMCHDBLocalEntities();

            AccountController ac = new AccountController();

            ac.InitializePublic(HttpContext.Request.RequestContext);

            try
            {
                Guid   memberID    = Guid.Empty;
                string errorString = ac.RegisterOrdinaryMember(PublicMemberInfo.Name, PublicMemberInfo.Email, ref memberID);
                if (!string.IsNullOrEmpty(errorString))
                {
                    ViewData["errorMsg"] = errorString;
                    throw new Exception();
                }

                if (OrdinaryMemberInfo.MemberFeePayByID == 1)
                {
                    PublicMemberInfo.MemberFeeExpiredDate = new DateTime(2020, 12, 31);
                }

                MemberInfo memberInfo = GetMemberInfo(PublicMemberInfo, memberID);
                _entities.AddToMemberInfos(memberInfo);
                _entities.SaveChanges();

                SetBackToNull(OrdinaryMemberInfo);

                //OrdinaryMemberInfo.IMemberID = memberID;
                //_localEntities.AddToOrdinaryMemberInfos(OrdinaryMemberInfo);
                //_localEntities.SaveChanges();

                MembershipUser newUser = Membership.GetUser(memberInfo.MemberID);
                if (newUser.Email.Trim() != "*****@*****.**")
                {
                    HomeController hc = new HomeController();
                    try
                    {
                        hc.sendUserEmail(newUser);
                    }
                    catch
                    {
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch
            {
                //Invalid - redisplay with errors
                var viewModel = new OrdinaryMemberViewModel
                {
                    OrdinaryMemberInfo = OrdinaryMemberInfo,
                    PublicMemberInfo   = PublicMemberInfo,
                    //Nationality = _localEntities.Nationalities.ToList(),
                    Gender = _entities.Genders.ToList(),
                    //Race = _localEntities.Races.ToList(),
                    //EmploymentStatus = _localEntities.EmploymentStatuses.ToList(),
                    PayMethod    = _entities.PayMethods.ToList(),
                    InitiateType = _entities.InitiateTypes.Where(a => a.ID <= 2).ToList(),
                };

                DefaultSettings(viewModel);

                return(View(viewModel));
            }
        }