public ActionResult GutterCleanInfoRegister(GutterCleanInfoModel model, bool captchaValid)
        {
            GutterCleanRequestModel requestModel = _httpContext.Session["GutterCleanRequestModel"] as GutterCleanRequestModel;
            if (requestModel == null)
            {
                return RedirectToRoute("GutterCleanRequest");
            }

            string returnUrl = string.Empty;

            if (!captchaValid)
            {
                ModelState.AddModelError("", "Wrong Captcha code.");
            }

            var zipcodeResult = _zipCodeService.GetZipCodeDetailByZipcode(model.ZipCode);
            if (zipcodeResult != null)
            {

            }
            else
            {
                ModelState.AddModelError("", "Zipcode is not valid.");

            }

            if (ModelState.IsValid)
            {

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

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

                    var customer = _workContext.CurrentCustomer;
                    customer.FirstName = model.FirstName;
                    customer.LastName = model.LastName;

                    customer.Address1 = model.Address;
                    customer.ZipPostalCode = model.ZipCode;

                    bool isApproved = true;
                    string password = Guid.NewGuid().ToString();
                    var registrationRequest = new CustomerRegistrationRequest(customer, model.Email, password.Substring(0, 8), isApproved);

                    var registrationResult = _customerService.RegisterCustomer(registrationRequest);
                    if (registrationResult.Success)
                    {

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

                        switch (UserRegistrationType.Standard)
                        {

                            case UserRegistrationType.Standard:
                                {

                                    var address = new Address();
                                    address.Address1 = model.Address;
                                    address.Address2 = "";
                                    address.City = zipcodeResult.CityName;
                                    address.Email = model.Email;
                                    address.State = zipcodeResult.StateName;
                                    address.PhoneNumber = "";
                                    address.ZipPostalCode = model.ZipCode;
                                    address.CreatedOnUtc = DateTime.UtcNow;

                                    customer.Addresses.Add(address);
                                    _customerService.UpdateCustomer(customer);

                                    //send email
                                    _workflowMessageService.SendCustomerWelcomeMessage(customer);

                                    GutterCleanRequestModel Requestmodel = _httpContext.Session["GutterCleanRequestModel"] as GutterCleanRequestModel;
                                    if (Requestmodel == null)
                                    {
                                        return RedirectToRoute("GutterCleanRequest");
                                    }
                                    else
                                    {

                                        return RedirectToRoute("ProcessPayment");
                                    }
                                }
                            default:
                                {
                                    return RedirectToRoute("GutterCleanRequest");

                                }
                        }
                    }

                    //errors
                    foreach (var error in registrationResult.Errors)
                        ModelState.AddModelError("", error);
                }
                else
                {
                    /// user is already registered
                    return RedirectToRoute("ProcessPayment");
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
        public ActionResult GutterCleanInfoRegister()
        {
            GutterCleanRequestModel requestModel = _httpContext.Session["GutterCleanRequestModel"] as GutterCleanRequestModel;
            if (requestModel == null)
            {
                return RedirectToRoute("GutterCleanRequest");
            }

            GutterCleanInfoModel model = new GutterCleanInfoModel();
            return View(model);
        }