public ActionResult Details(Guid?id)
        {
            MembershipUser user = Membership.GetUser();

            if (id == null)
            {
                id = ((Guid)(user.ProviderUserKey));
            }
            else
            {
                user = Membership.GetUser(id);
            }

            PublicMemberInfo publicMemberInfo = GetPublicMemberInfo(id, user.UserName, user.Email);
            var viewModel = new OrdinaryMemberViewModel
            {
                PublicMemberInfo = publicMemberInfo,
            };

            if (IsFromLocalHost())
            {
                SMCHDBLocalEntities _localEntities = new SMCHDBLocalEntities();
                if (_localEntities.OrdinaryMemberInfos.Any(a => a.IMemberID == id))
                {
                    OrdinaryMemberInfo ordinaryMemberInfo = _localEntities.OrdinaryMemberInfos.Single(a => a.IMemberID == id);
                    viewModel.OrdinaryMemberInfo = ordinaryMemberInfo;
                    //var viewModel = new OrdinaryMemberViewModel
                    //{
                    //    OrdinaryMemberInfo = ordinaryMemberInfo,
                    //    PublicMemberInfo = publicMemberInfo,
                    //};

                    if (ordinaryMemberInfo.MemberFeePayByID.HasValue)
                    {
                        ViewData["PayMethodName"] = _entities.PayMethods.SingleOrDefault(a => a.ID == ordinaryMemberInfo.MemberFeePayByID).Name;
                    }
                }
            }

            ViewData["IsFromLocalHost"] = IsFromLocalHost();

            return(View(viewModel));
        }
        public ActionResult Create()
        {
            //SMCHDBLocalEntities _localEntities = new SMCHDBLocalEntities();

            var viewModel = new OrdinaryMemberViewModel
            {
                OrdinaryMemberInfo = new OrdinaryMemberInfo(),
                PublicMemberInfo   = new 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));
        }
        public ActionResult Edit(Guid id)
        {
            MembershipUser user = Membership.GetUser(id);

            PublicMemberInfo publicMemberInfo = GetPublicMemberInfo(id, user.UserName, user.Email);

            var viewModel = new OrdinaryMemberViewModel
            {
                PublicMemberInfo = publicMemberInfo,
                Gender           = _entities.Genders.ToList(),
                PayMethod        = _entities.PayMethods.ToList(),
                InitiateType     = _entities.InitiateTypes.Where(a => a.ID <= 2).ToList(),
            };

            //if (IsFromLocalHost())
            //{
            //    SMCHDBLocalEntities _localEntities = new SMCHDBLocalEntities();

            //    viewModel = new OrdinaryMemberViewModel
            //    {
            //        OrdinaryMemberInfo = _localEntities.OrdinaryMemberInfos.Single(a => a.IMemberID == id),
            //        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);
            //}

            ViewData["IsFromLocalHost"] = IsFromLocalHost();

            return(View(viewModel));
        }
        private static void DefaultSettings(OrdinaryMemberViewModel viewModel)
        {
            if (!viewModel.OrdinaryMemberInfo.NationalityID.HasValue)
            {
                viewModel.OrdinaryMemberInfo.NationalityID = 0;
            }
            if (!viewModel.OrdinaryMemberInfo.MemberFeePayByID.HasValue)
            {
                viewModel.OrdinaryMemberInfo.MemberFeePayByID = 0;
            }
            if (!viewModel.OrdinaryMemberInfo.RaceID.HasValue)
            {
                viewModel.OrdinaryMemberInfo.RaceID = 0;
            }
            if (!viewModel.OrdinaryMemberInfo.EmploymentStatusID.HasValue)
            {
                viewModel.OrdinaryMemberInfo.EmploymentStatusID = 0;
            }

            viewModel.PayMethod.Insert(0, new PayMethod());
            //viewModel.EmploymentStatus.Insert(0, new EmploymentStatus());
            //viewModel.Race.Insert(0, new Race());
            //viewModel.Nationality.Insert(0, new Nationality());
        }
        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));
            }
        }