Ejemplo n.º 1
0
        public ActionResult Edit(int id, PaaMember model, FormCollection collection)
        {
            // hide from public
            if (!Authorized())
            {
                return(InvokeHttp404());
            }


            try
            {
                // TODO: Add update logic here


                if (ModelState.IsValid)
                {
                    return(RedirectToAction("Index"));
                }



                // something failed
                return(View(Utilities.CorrectViewPath("MemberList/Edit"), model));
            }
            catch
            {
                return(View(Utilities.CorrectViewPath("MemberList/Edit")));
            }
        }
Ejemplo n.º 2
0
        // GET: Member/Edit/5
        public ActionResult Edit(int?id)
        {
            // hide from public
            if (!Authorized())
            {
                return(InvokeHttp404());
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            PaaMember member = _membershipService.GetMemberById((int)id);

            if (member == null)
            {
                return(InvokeHttp404());                 // new HttpNotFoundResult();
            }
            if (member.Membership != null)
            {
                ViewBag.MembershipSelector = member.Membership.Id;
            }

            ViewBag.MemberStateId = member.StateProvinceId;

            return(View(Utilities.CorrectViewPath("MemberList/Edit"), member));
        }
Ejemplo n.º 3
0
        public virtual ActionResult Register(int?id)
        {
            //check whether registration is allowed
            if (_customerSettings.UserRegistrationType == UserRegistrationType.Disabled)
            {
                return(RedirectToRoute("RegisterResult", new { resultId = (int)UserRegistrationType.Disabled }));
            }


            CustomerRoleType role = 0;

            if (id != null)
            {
                role = (CustomerRoleType)id;

                ViewBag.Headline = role.ToString();
            }


            var x = InitPaaRegisterModel();

            PaaMember model = new PaaMember
            {
                CustomerRoleType = role,
                RegisterModel    = InitPaaRegisterModel()
            };

            model.RegisterModel.FirstName = "John";


            return(View("PaidMemberShip", model));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            PaaMember paaMember = db.PaaMembers.Find(id);

            db.PaaMembers.Remove(paaMember);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "PaaMemberId,Email,FirstName,LastName,Company,StreetAddress,StreetAddress2,City,State,ZipCode,Url,ArtWork,FamilyMemberEmail,NonPayingMember,HomePageApproval,Phone,Renewal")] PaaMember paaMember)
 {
     if (ModelState.IsValid)
     {
         db.Entry(paaMember).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(paaMember));
 }
Ejemplo n.º 6
0
        public PaaMember GetMemberById(int memberId, int storeId = 0)
        {
            Customer  customer = _customerService.GetCustomerById(memberId);
            PaaMember member   = BuildPaaMember(customer, storeId);

            if (member != null)
            {
                SetPaaMemberStatus(ref member);
                return(member);
            }
            return(null);
        }
Ejemplo n.º 7
0
        public void SetPaaMemberStatus(ref PaaMember member)
        {
            DateTime renewal = member.Renewal;

            // special case
            if (member.Membership != null && member.Membership.Name.ToLower() == "honorary membership")
            {
                member.Status = new KeyValuePair <int, string>((int)StatusCode.current, "Current");
                return;
            }

            if (renewal == DateTime.MinValue)
            {
                member.Status = new KeyValuePair <int, string>(-1, "Error");
                return;
            }

            if (renewal >= _today)
            {
                if (renewal <= _fifteenDaysFromNow)
                {
                    member.Status = new KeyValuePair <int, string>((int)StatusCode.current_expiring_less_than_fifteen_days, "Expiring Soon");
                    return;
                }
                else
                {
                    member.Status = new KeyValuePair <int, string>((int)StatusCode.current, "Current");
                    return;
                }
            }

            if (renewal <= _fortyFiveDayAgo)
            {
                if (renewal <= _longExpired)
                {
                    member.Status = new KeyValuePair <int, string>((int)StatusCode.expired_no_grace, "Expired");
                    return;
                }
                else
                {
                    member.Status = new KeyValuePair <int, string>((int)StatusCode.expired_no_grace_less_then_fifteen_days, "Expired Recently");
                    return;
                }
            }

            if (renewal >= _fortyFiveDayAgo)
            {
                member.Status = new KeyValuePair <int, string>((int)StatusCode.expired_grace_less_than_fortyfive_days, "Expired Grace");
                return;
            }
        }
        // GET: PaaMembers/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PaaMember paaMember = db.PaaMembers.Find(id);

            if (paaMember == null)
            {
                return(HttpNotFound());
            }
            return(View(paaMember));
        }
Ejemplo n.º 9
0
        public ActionResult Create(/*FormCollection collection  ,*/ PaaMember member)
        {
            // hide from public
            if (!Authorized())
            {
                return(InvokeHttp404());
            }

            // TODO: Add insert logic here


            // if( )
            return(View(Utilities.CorrectViewPath("MemberList/Create"), member));
        }
Ejemplo n.º 10
0
        // GET: Member/Details/5
        public ActionResult Details(int?id)
        {
            // hide from public
            if (!Authorized())
            {
                return(InvokeHttp404());
            }

            PaaMember member = _membershipService.GetMemberById((int)id);

            if (member == null)
            {
                return(InvokeHttp404());                     // new HttpNotFoundResult();
            }
            return(View(Utilities.CorrectViewPath("MemberList/Details"), member));
        }
Ejemplo n.º 11
0
        // GET: Member/Create
        public ActionResult Create()
        {
            // hide from public
            if (!Authorized())
            {
                return(InvokeHttp404());
            }


            PaaMember member = new PaaMember( );

            member.Renewal = DateTime.Now.AddDays(366);


            return(View(Utilities.CorrectViewPath("MemberList/Create"), member));
        }
Ejemplo n.º 12
0
        //public IList<Customer> Customers(PasswordFormat passwordFormat)

        public IList <PaaMember> MembersList(int storeId = 0)
        {
            IList <PaaMember> members = new List <PaaMember>();



            foreach (Customer customer in GetCustomersWhoAreMembers())
            {
                PaaMember member = BuildPaaMember(customer, storeId);

                if (member.CountryId == 0)
                {
                    count++;
                }

                SetPaaMemberStatus(ref member);

                members.Add(member);
            }

            return(members);
        }
Ejemplo n.º 13
0
        private void GetCustomerCountryState(Customer customer, ref PaaMember member, int storeId = 0)
        {
            string countryId = customer.GetAttribute <string>(SystemCustomerAttributeNames.CountryId, storeId);
            string stateId   = customer.GetAttribute <string>(SystemCustomerAttributeNames.StateProvinceId, storeId);

            int stateid   = 0;
            int countryid = 0;

            bool validC = Int32.TryParse(countryId, out countryid);
            bool validS = Int32.TryParse(stateId, out stateid);

            if (validC && validS)
            {
                member.CountryId       = countryid;
                member.StateProvinceId = stateid;

                StateProvince state = _stateProvinceService.GetStateProvinceById(stateid);
                member.State = (state != null) ? state
                                                : new StateProvince {
                    Name = "", Abbreviation = "??"
                };
            }
        }
Ejemplo n.º 14
0
        public virtual ActionResult Register(PaaMember member, string returnUrl, bool captchaValid, FormCollection form)
        {
            RegisterModel model = null;// = member.RegisterModel;



            //check whether registration is allowed
            if (_customerSettings.UserRegistrationType == UserRegistrationType.Disabled)
            {
                return(RedirectToRoute("RegisterResult", new { resultId = (int)UserRegistrationType.Disabled }));
            }

            if (_workContext.CurrentCustomer.IsRegistered())
            {
                //Already registered customer.
                _authenticationService.SignOut();

                //raise logged out event
                _eventPublisher.Publish(new CustomerLoggedOutEvent(_workContext.CurrentCustomer));

                //Save a new record
                _workContext.CurrentCustomer = _customerService.InsertGuestCustomer();
            }
            var customer = _workContext.CurrentCustomer;

            customer.RegisteredInStoreId = _storeContext.CurrentStore.Id;

            //custom customer attributes
            var customerAttributesXml     = ParseCustomCustomerAttributes(form);
            var customerAttributeWarnings = _customerAttributeParser.GetAttributeWarnings(customerAttributesXml);

            foreach (var error in customerAttributeWarnings)
            {
                ModelState.AddModelError("", error);
            }

            //validate CAPTCHA
            if (_captchaSettings.Enabled && _captchaSettings.ShowOnRegistrationPage && !captchaValid)
            {
                ModelState.AddModelError("", _captchaSettings.GetWrongCaptchaMessage(_localizationService));
            }

            if (ModelState.IsValid)
            {
                if (_customerSettings.UsernamesEnabled && model.Username != null)
                {
                    model.Username = model.Username.Trim();
                }

                bool isApproved          = _customerSettings.UserRegistrationType == UserRegistrationType.Standard;
                var  registrationRequest = new CustomerRegistrationRequest(customer,
                                                                           model.Email,
                                                                           _customerSettings.UsernamesEnabled ? model.Username : model.Email,
                                                                           model.Password,
                                                                           _customerSettings.DefaultPasswordFormat,
                                                                           _storeContext.CurrentStore.Id,
                                                                           isApproved);
                var registrationResult = _customerRegistrationService.RegisterCustomer(registrationRequest);
                if (registrationResult.Success)
                {
                    //properties
                    if (_dateTimeSettings.AllowCustomersToSetTimeZone)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.TimeZoneId, model.TimeZoneId);
                    }
                    //VAT number
                    if (_taxSettings.EuVatEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.VatNumber, model.VatNumber);

                        string vatName;
                        string vatAddress;
                        var    vatNumberStatus = _taxService.GetVatNumberStatus(model.VatNumber, out vatName,
                                                                                out vatAddress);
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.VatNumberStatusId, (int)vatNumberStatus);
                        //send VAT number admin notification
                        if (!String.IsNullOrEmpty(model.VatNumber) && _taxSettings.EuVatEmailAdminWhenNewVatSubmitted)
                        {
                            _workflowMessageService.SendNewVatSubmittedStoreOwnerNotification(customer, model.VatNumber, vatAddress, _localizationSettings.DefaultAdminLanguageId);
                        }
                    }

                    //form fields
                    if (_customerSettings.GenderEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.Gender, model.Gender);
                    }
                    _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.FirstName, model.FirstName);
                    _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.LastName, model.LastName);
                    if (_customerSettings.DateOfBirthEnabled)
                    {
                        //                       DateTime? dateOfBirth = model.ParseDateOfBirth();
                        //                       _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.DateOfBirth, dateOfBirth);
                    }
                    if (_customerSettings.CompanyEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.Company, model.Company);
                    }
                    if (_customerSettings.StreetAddressEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.StreetAddress, model.StreetAddress);
                    }
                    if (_customerSettings.StreetAddress2Enabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.StreetAddress2, model.StreetAddress2);
                    }
                    if (_customerSettings.ZipPostalCodeEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.ZipPostalCode, model.ZipPostalCode);
                    }
                    if (_customerSettings.CityEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.City, model.City);
                    }
                    if (_customerSettings.CountryEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.CountryId, model.CountryId);
                    }
                    if (_customerSettings.CountryEnabled && _customerSettings.StateProvinceEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.StateProvinceId,
                                                               model.StateProvinceId);
                    }
                    if (_customerSettings.PhoneEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.Phone, model.Phone);
                    }
                    if (_customerSettings.FaxEnabled)
                    {
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.Fax, model.Fax);
                    }

                    //newsletter
                    if (_customerSettings.NewsletterEnabled)
                    {
                        //save newsletter value
                        var newsletter = _newsLetterSubscriptionService.GetNewsLetterSubscriptionByEmailAndStoreId(model.Email, _storeContext.CurrentStore.Id);
                        if (newsletter != null)
                        {
                            if (model.Newsletter)
                            {
                                newsletter.Active = true;
                                _newsLetterSubscriptionService.UpdateNewsLetterSubscription(newsletter);
                            }
                            //else
                            //{
                            //When registering, not checking the newsletter check box should not take an existing email address off of the subscription list.
                            //_newsLetterSubscriptionService.DeleteNewsLetterSubscription(newsletter);
                            //}
                        }
                        else
                        {
                            if (model.Newsletter)
                            {
                                _newsLetterSubscriptionService.InsertNewsLetterSubscription(new NewsLetterSubscription
                                {
                                    NewsLetterSubscriptionGuid = Guid.NewGuid(),
                                    Email        = model.Email,
                                    Active       = true,
                                    StoreId      = _storeContext.CurrentStore.Id,
                                    CreatedOnUtc = DateTime.UtcNow
                                });
                            }
                        }
                    }

                    //save customer attributes
                    _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.CustomCustomerAttributes, customerAttributesXml);

                    //login customer now
                    if (isApproved)
                    {
                        _authenticationService.SignIn(customer, true);
                    }

                    //associated with external account (if possible)
                    TryAssociateAccountWithExternalAccount(customer);

                    //insert default address (if possible)
                    var defaultAddress = new Address
                    {
                        FirstName = customer.GetAttribute <string>(SystemCustomerAttributeNames.FirstName),
                        LastName  = customer.GetAttribute <string>(SystemCustomerAttributeNames.LastName),
                        Email     = customer.Email,
                        Company   = customer.GetAttribute <string>(SystemCustomerAttributeNames.Company),
                        CountryId = customer.GetAttribute <int>(SystemCustomerAttributeNames.CountryId) > 0
                            ? (int?)customer.GetAttribute <int>(SystemCustomerAttributeNames.CountryId)
                            : null,
                        StateProvinceId = customer.GetAttribute <int>(SystemCustomerAttributeNames.StateProvinceId) > 0
                            ? (int?)customer.GetAttribute <int>(SystemCustomerAttributeNames.StateProvinceId)
                            : null,
                        City          = customer.GetAttribute <string>(SystemCustomerAttributeNames.City),
                        Address1      = customer.GetAttribute <string>(SystemCustomerAttributeNames.StreetAddress),
                        Address2      = customer.GetAttribute <string>(SystemCustomerAttributeNames.StreetAddress2),
                        ZipPostalCode = customer.GetAttribute <string>(SystemCustomerAttributeNames.ZipPostalCode),
                        PhoneNumber   = customer.GetAttribute <string>(SystemCustomerAttributeNames.Phone),
                        FaxNumber     = customer.GetAttribute <string>(SystemCustomerAttributeNames.Fax),
                        CreatedOnUtc  = customer.CreatedOnUtc
                    };
                    if (this._addressService.IsAddressValid(defaultAddress))
                    {
                        //some validation
                        if (defaultAddress.CountryId == 0)
                        {
                            defaultAddress.CountryId = null;
                        }
                        if (defaultAddress.StateProvinceId == 0)
                        {
                            defaultAddress.StateProvinceId = null;
                        }
                        //set default address
                        customer.Addresses.Add(defaultAddress);
                        customer.BillingAddress  = defaultAddress;
                        customer.ShippingAddress = defaultAddress;
                        _customerService.UpdateCustomer(customer);
                    }

                    //notifications
                    if (_customerSettings.NotifyNewCustomerRegistration)
                    {
                        _workflowMessageService.SendCustomerRegisteredNotificationMessage(customer,
                                                                                          _localizationSettings.DefaultAdminLanguageId);
                    }

                    //raise event
                    _eventPublisher.Publish(new CustomerRegisteredEvent(customer));

                    switch (_customerSettings.UserRegistrationType)
                    {
                    case UserRegistrationType.EmailValidation:
                    {
                        //email validation message
                        _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.AccountActivationToken, Guid.NewGuid().ToString());
                        _workflowMessageService.SendCustomerEmailValidationMessage(customer, _workContext.WorkingLanguage.Id);

                        //result
                        return(RedirectToRoute("RegisterResult",
                                               new { resultId = (int)UserRegistrationType.EmailValidation }));
                    }

                    case UserRegistrationType.AdminApproval:
                    {
                        return(RedirectToRoute("RegisterResult",
                                               new { resultId = (int)UserRegistrationType.AdminApproval }));
                    }

                    case UserRegistrationType.Standard:
                    {
                        //send customer welcome message
                        _workflowMessageService.SendCustomerWelcomeMessage(customer, _workContext.WorkingLanguage.Id);

                        var redirectUrl = Url.RouteUrl("RegisterResult", new { resultId = (int)UserRegistrationType.Standard });
                        if (!String.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
                        {
                            redirectUrl = _webHelper.ModifyQueryString(redirectUrl, "returnurl=" + HttpUtility.UrlEncode(returnUrl), null);
                        }
                        return(Redirect(redirectUrl));
                    }

                    default:
                    {
                        return(RedirectToRoute("HomePage"));
                    }
                    }
                }

                //errors
                foreach (var error in registrationResult.Errors)
                {
                    ModelState.AddModelError("", error);
                }
            }

            //If we got this far, something failed, redisplay form

            //           model = _customerModelFactory.PrepareRegisterModel( model, true, customerAttributesXml);
            //           return View("PaidMemberShip" , model);

            return(null);
        }
Ejemplo n.º 15
0
 public PaaMember UpdateMember(PaaMember member)
 {
     return(member);
 }
Ejemplo n.º 16
0
        private PaaMember BuildPaaMember(Customer customer, int storeId)
        {
            if (customer == null)
            {
                return(null);
            }

            PaaMember m = new PaaMember
            {
                PaaMemberId   = customer.Id,
                Email         = customer.Email,
                FirstName     = customer.GetAttribute <string>(SystemCustomerAttributeNames.FirstName, storeId),
                LastName      = customer.GetAttribute <string>(SystemCustomerAttributeNames.LastName, storeId),
                StreetAddress = customer.GetAttribute <string>(SystemCustomerAttributeNames.StreetAddress, storeId),
                City          = customer.GetAttribute <string>(SystemCustomerAttributeNames.City, storeId),
                ZipCode       = customer.GetAttribute <string>(SystemCustomerAttributeNames.ZipPostalCode, storeId),
                Phone         = customer.GetAttribute <string>(SystemCustomerAttributeNames.Phone, storeId),
                CustomerRoles = customer.CustomerRoles.ToList(),
            };

            GetCustomerCountryState(customer, ref m);



            // role selected & helper flags
            foreach (CustomerRole role in m.CustomerRoles)
            {
                if (role.Name.ToLower().Contains("member"))  // should be only 1 !!
                {
                    // set membership
                    m.Membership = role;

                    // set membership drop-down  selected value
                    m.SelectedRole = (SelectedRole)m.Membership.Id;
                }

                if (role.Name.ToLower().Contains("family"))
                {
                    m.PartnerRequired = true;
                }
            }


            // custom Attributes
            foreach (CustomerServices.AttributeValuePair customerAttr
                     in Utilities.GetCustomerAttributes(customer))
            {
                switch (customerAttr.ValueId)
                {
                case (int)CustomerCustomAttribute.Renewal:
                {
                    DateTime expires;

                    if (DateTime.TryParse(customerAttr.ValueText, out expires))
                    {
                        m.Renewal = expires;
                    }
                    break;
                }

                case (int)CustomerCustomAttribute.Url:
                {
                    m.Url = customerAttr.ValueText;
                    break;
                }

                case (int)CustomerCustomAttribute.PartnerEmail:
                {
                    m.PartnerEmail = customerAttr.ValueText;

                    if (m.PartnerRequired)
                    {
                        if (!string.IsNullOrEmpty(m.PartnerEmail))
                        {
                            Customer partner = _customerService.GetCustomerByEmail(m.PartnerEmail);

                            if (partner != null)
                            {
                                m.PartnerFirstName = partner.GetAttribute <string>(SystemCustomerAttributeNames.FirstName, storeId);
                                m.PartnerLastName  = partner.GetAttribute <string>(SystemCustomerAttributeNames.LastName, storeId);
                            }
                        }
                    }
                    break;
                }

                case (int)CustomerCustomAttribute.ArtWork:
                {
                    m.ArtWork = customerAttr.ValueText;
                    break;
                }


                case (int)CustomerCustomAttribute.HomePageSlideTitle:
                {
                    m.ArtWorkTitle = customerAttr.ValueText;
                    break;
                }


                //case (int)Utilities.CustomerAttribute.ArtworkApproval:
                //    {
                //        m.HomeSlideApproved = (customerAttr.ValueText.ToLower() == "yes")
                //            ? Classes.Enums.Approved.Yes
                //            : Classes.Enums.Approved.No;    //HomePageApproval
                //        break;
                //    }

                case (int)CustomerCustomAttribute.HomePageApprovalYes:
                {
                    m.HomeSlideApproved = Approved.Yes;
                    break;
                }

                case (int)CustomerCustomAttribute.HomePageApprovalNo:
                {
                    m.HomeSlideApproved = Approved.No;
                    break;
                }
                }
            }
            return(m);
        }
Ejemplo n.º 17
0
 public PaaMember CreateMember(PaaMember member)
 {
     return(member);
 }
Ejemplo n.º 18
0
        public ActionResult Register(
            RegistrationViewModel model,
            SelfIdentificationViewModel identity,
            bool captchaValid
            )
        {
            //check whether registration is allowed
            //    if (_customerSettings.UserRegistrationType == UserRegistrationType.Disabled)
            //         return RedirectToRoute("RegisterResult", new { resultId = (int)UserRegistrationType.Disabled });



            // setup model for pure registration
            _dallasArtContext.IsRegistration  = true;
            model.SelfIdentificationViewModel = identity;


            if (model.CurrentState == "Begin")
            {
                model.CurrentState = "Loop";
                //  PostExtraValidation(model);



                if (!ModelState.IsValid)
                {
                    model.DisplaySuccess = false;
                    // something failed validation


                    // return View(Utilities.CorrectViewPath("ImageSubmission/_RegisterRequest"), model);
                    return(PartialView(ContactViewPath("_RegisterRequest"), model));
                }

                else
                {
                    model.ImageUploadViewModel.EmailAddress    = identity.Email;
                    model.ImageUploadViewModel.CustomerName    = identity.FirstName + " " + identity.LastName;
                    model.ImageUploadViewModel.Telephone       = identity.Phone;
                    model.ImageUploadViewModel.RemainingImages = 3;
                    model.ImageUploadViewModel.ModelState      = "Ready";


                    model.ImageUploadViewModel.Member = model.ImageUploadViewModel.Member;
                    model.DisplaySuccess = true;


                    PaaMember currentMember =
                        _membershipService.Paa_Current_MemberList().Where(x => x.Email == identity.Email).SingleOrDefault();

                    model.ImageUploadViewModel.Member = (currentMember != null);


                    // model.ImageUploadViewModel.Member =  // member is 2
                    //     model.SelfIdentificationViewModel.RadioButtionList.SelectedRole == 2;

                    //return View(Utilities.CorrectViewPath("ImageSubmission/_RegisterRequest"), model);
                    return(PartialView(ContactViewPath("_RegisterRequest"), model));
                }

                // model.DisplaySuccess = false;
                // model.CurrentState = "Begin";
                //   return View(ContactViewPath("Register"), model);
            }

            // security check
            // DisplayCaptchaViewModel.CaptchaValidation(captchaValid, model.DisplayCaptcha, ModelState);

            // check input values not handled by validation
            EnrollmentPostValidation(model);

            if (ModelState.IsValid)
            {
                bool isApproved = _customerSettings.UserRegistrationType == UserRegistrationType.Standard;

                model.CurrentCustomer = _workContext.CurrentCustomer;
                model.SelfIdentificationViewModel.Customer = model.CurrentCustomer;


                var registrationRequest = new CustomerRegistrationRequest(
                    model.CurrentCustomer,
                    model.SelfIdentificationViewModel.Email,
                    _customerSettings.UsernamesEnabled ? model.Username : model.SelfIdentificationViewModel.Email,
                    model.SelfIdentificationViewModel.Password,
                    _customerSettings.DefaultPasswordFormat,
                    _storeContext.CurrentStore.Id,
                    isApproved);

                var registrationResult = _customerRegistrationService.RegisterCustomer(registrationRequest);

                if (registrationResult.Success)
                {
                    //  var loginResult =
                    // _customerRegistrationService.ValidateCustomer( model.SelfIdentificationViewModel.Email, model.SelfIdentificationViewModel.Password);

                    var guestRole = _customerService.GetCustomerRoleBySystemName(SystemCustomerRoleNames.Guests);

                    _workContext.CurrentCustomer.CustomerRoles.Add(guestRole);

                    var control = new OnePageCheckoutModel {
                        ShippingRequired = false, DisableBillingAddressCheckoutStep = false
                    };

                    return(View("/Themes/PAA/Views/Checkout/onepagecheckout.cshtml", control));
                }
                else
                {
                    // something failed registration
                    //  return View(Utilities.CorrectViewPath("ImageSubmission/Register"), model);
                    return(View("Register", model));
                }
            }

            // something failed validation

            // return View(Utilities.CorrectViewPath("ImageSubmission/Register"), model);
            return(View("Register", model));
        }