public IActionResult UserContactDetails(UserContactDetailsViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            AddressOptions addressOptions = _accountProvider.GetAddressOptions(AddressOption.Billing);

            if (addressOptions.HasFlag(AddressOptions.TelephoneMandatory) && String.IsNullOrEmpty(model.Telephone))
            {
                ModelState.AddModelError($"{nameof(model.Telephone)}", Languages.LanguageStrings.InvalidTelephoneNumber);
            }

            if (ModelState.IsValid)
            {
                if (_accountProvider.SetUserAccountDetails(UserId(), model.FirstName, model.LastName, model.Email, model.Telephone))
                {
                    GrowlAdd(Languages.LanguageStrings.ContactDetailsUpdated);
                    return(RedirectToAction(nameof(Index), "Account"));
                }

                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.FailedToUpdateAccount);
            }

            model.Breadcrumbs = GetBreadcrumbs();
            model.CartSummary = GetCartSummary();

            return(View(model));
        }
        public IActionResult UserContactDetails(UserContactDetailsViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            AddressOptions addressOptions = _accountProvider.GetAddressOptions();

            if (addressOptions.HasFlag(AddressOptions.TelephoneMandatory) && String.IsNullOrEmpty(model.Telephone))
            {
                ModelState.AddModelError($"{nameof(model.Telephone)}", "Please enter a valid telephone number");
            }

            if (ModelState.IsValid)
            {
                if (_accountProvider.SetUserAccountDetails(UserId(), model.FirstName, model.LastName, model.Email, model.Telephone))
                {
                    GrowlAdd("Contact details successfully updated");
                    return(RedirectToAction("Index", "Account"));
                }

                ModelState.AddModelError(String.Empty, "Failed to update user account");
            }

            return(View(model));
        }
コード例 #3
0
        private void PrepareCreateAccountModel(ref CreateAccountViewModel model)
        {
            AddressOptions addressOptions = _accountProvider.GetAddressOptions();

            model.ShowAddressLine1 = addressOptions.HasFlag(AddressOptions.AddressLine1Show);
            model.ShowAddressLine2 = addressOptions.HasFlag(AddressOptions.AddressLine2Show);
            model.ShowAddressLine3 = addressOptions.HasFlag(AddressOptions.AddressLine3Show);
            model.ShowBusinessName = addressOptions.HasFlag(AddressOptions.BusinessNameShow);
            model.ShowCity         = addressOptions.HasFlag(AddressOptions.CityShow);
            model.ShowCounty       = addressOptions.HasFlag(AddressOptions.CountyShow);
            model.ShowPostcode     = addressOptions.HasFlag(AddressOptions.PostCodeShow);
            model.ShowTelephone    = addressOptions.HasFlag(AddressOptions.TelephoneShow);

            model.ShowCaptchaImage = true;

            CreateAccountCacheItem createAccountCacheItem = GetCachedCreateAccountAttempt(true);

            createAccountCacheItem.CaptchaText = GetRandomWord(6, CaptchaCharacters);
        }
コード例 #4
0
        private void ValidateBillingAddressModel(ref BillingAddressViewModel model)
        {
            AddressOptions addressOptions = _accountProvider.GetAddressOptions();

            if (addressOptions.HasFlag(AddressOptions.AddressLine1Mandatory) && String.IsNullOrEmpty(model.AddressLine1))
            {
                ModelState.AddModelError(nameof(model.AddressLine1), "Address line 1 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine2Mandatory) && String.IsNullOrEmpty(model.AddressLine2))
            {
                ModelState.AddModelError(nameof(model.AddressLine2), "Address line 2 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine3Mandatory) && String.IsNullOrEmpty(model.AddressLine3))
            {
                ModelState.AddModelError(nameof(model.AddressLine3), "Address line 3 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.CityMandatory) && String.IsNullOrEmpty(model.City))
            {
                ModelState.AddModelError(nameof(model.City), "City is required");
            }

            if (addressOptions.HasFlag(AddressOptions.CountyMandatory) && String.IsNullOrEmpty(model.County))
            {
                ModelState.AddModelError(nameof(model.County), "County is required");
            }

            if (addressOptions.HasFlag(AddressOptions.PostCodeMandatory) && String.IsNullOrEmpty(model.Postcode))
            {
                ModelState.AddModelError(nameof(model.Postcode), "Postcode is required");
            }

            if (addressOptions.HasFlag(AddressOptions.BusinessNameMandatory) && String.IsNullOrEmpty(model.BusinessName))
            {
                ModelState.AddModelError(nameof(model.BusinessName), "Business Name is required");
            }
        }
コード例 #5
0
        private void ValidateBillingAddressModel(ref BillingAddressViewModel model)
        {
            AddressOptions addressOptions = _accountProvider.GetAddressOptions(AddressOption.Delivery);

            if (addressOptions.HasFlag(AddressOptions.AddressLine1Mandatory) && String.IsNullOrEmpty(model.AddressLine1))
            {
                ModelState.AddModelError(nameof(model.AddressLine1), Languages.LanguageStrings.AddressLine1Required);
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine2Mandatory) && String.IsNullOrEmpty(model.AddressLine2))
            {
                ModelState.AddModelError(nameof(model.AddressLine2), Languages.LanguageStrings.AddressLine2Required);
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine3Mandatory) && String.IsNullOrEmpty(model.AddressLine3))
            {
                ModelState.AddModelError(nameof(model.AddressLine3), Languages.LanguageStrings.AddressLine3Required);
            }

            if (addressOptions.HasFlag(AddressOptions.CityMandatory) && String.IsNullOrEmpty(model.City))
            {
                ModelState.AddModelError(nameof(model.City), Languages.LanguageStrings.CityRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.CountyMandatory) && String.IsNullOrEmpty(model.County))
            {
                ModelState.AddModelError(nameof(model.County), Languages.LanguageStrings.CountyRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.PostCodeMandatory) && String.IsNullOrEmpty(model.Postcode))
            {
                ModelState.AddModelError(nameof(model.Postcode), Languages.LanguageStrings.PostcodeRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.BusinessNameMandatory) && String.IsNullOrEmpty(model.BusinessName))
            {
                ModelState.AddModelError(nameof(model.BusinessName), Languages.LanguageStrings.BusinessNameRequired);
            }
        }
コード例 #6
0
        private void ValidateCreateAccountModel(ref CreateAccountViewModel model)
        {
            CreateAccountCacheItem createAccountCacheItem = GetCachedCreateAccountAttempt(true);

            if (!String.IsNullOrEmpty(createAccountCacheItem.CaptchaText))
            {
                if (!createAccountCacheItem.CaptchaText.Equals(model.CaptchaText))
                {
                    ModelState.AddModelError(String.Empty, "Invalid Validation Code");
                }
            }

            createAccountCacheItem.CreateAttempts++;

            if (createAccountCacheItem.CreateAttempts > 10)
            {
                ModelState.AddModelError(String.Empty, "Too many attempts, please wait 30 minutes and try again");
            }

            AddressOptions addressOptions = _accountProvider.GetAddressOptions();

            if (!ValidatePasswordComplexity(model.Password))
            {
                ModelState.AddModelError(String.Empty, "Password does not match complexity rules.");
            }

            if (!model.Password.Equals(model.ConfirmPassword))
            {
                ModelState.AddModelError("", "Confirm password must match Password");
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine1Mandatory) && String.IsNullOrEmpty(model.AddressLine1))
            {
                ModelState.AddModelError(nameof(model.AddressLine1), "Address line 1 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine2Mandatory) && String.IsNullOrEmpty(model.AddressLine2))
            {
                ModelState.AddModelError(nameof(model.AddressLine2), "Address line 2 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine3Mandatory) && String.IsNullOrEmpty(model.AddressLine3))
            {
                ModelState.AddModelError(nameof(model.AddressLine3), "Address line 3 is required");
            }

            if (addressOptions.HasFlag(AddressOptions.CityMandatory) && String.IsNullOrEmpty(model.City))
            {
                ModelState.AddModelError(nameof(model.City), "City is required");
            }

            if (addressOptions.HasFlag(AddressOptions.CountyMandatory) && String.IsNullOrEmpty(model.County))
            {
                ModelState.AddModelError(nameof(model.County), "County is required");
            }

            if (addressOptions.HasFlag(AddressOptions.PostCodeMandatory) && String.IsNullOrEmpty(model.Postcode))
            {
                ModelState.AddModelError(nameof(model.Postcode), "Postcode is required");
            }

            if (addressOptions.HasFlag(AddressOptions.BusinessNameMandatory) && String.IsNullOrEmpty(model.BusinessName))
            {
                ModelState.AddModelError(nameof(model.BusinessName), "Business Name is required");
            }

            if (addressOptions.HasFlag(AddressOptions.TelephoneMandatory) && String.IsNullOrEmpty(model.Telephone))
            {
                ModelState.AddModelError(nameof(model.Telephone), "Telephone is required");
            }

            createAccountCacheItem.CaptchaText = GetRandomWord(6, CaptchaCharacters);
            model.CaptchaText = String.Empty;
        }
コード例 #7
0
        private void ValidateCreateAccountModel(ref CreateAccountViewModel model)
        {
            CreateAccountCacheItem createAccountCacheItem = GetCachedCreateAccountAttempt(true);

            if (!String.IsNullOrEmpty(createAccountCacheItem.CaptchaText))
            {
                if (!createAccountCacheItem.CaptchaText.Equals(model.CaptchaText))
                {
                    ModelState.AddModelError(String.Empty, Languages.LanguageStrings.CodeNotValid);
                }
            }

            createAccountCacheItem.CreateAttempts++;

            if (createAccountCacheItem.CreateAttempts > 10)
            {
                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.TooManyAttempts);
            }

            AddressOptions addressOptions = _accountProvider.GetAddressOptions(AddressOption.Billing);

            if (!ValidatePasswordComplexity(model.Password))
            {
                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.PasswordComplexityFailed);
            }

            if (!model.Password.Equals(model.ConfirmPassword))
            {
                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.PasswordDoesNotMatch);
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine1Mandatory) && String.IsNullOrEmpty(model.AddressLine1))
            {
                ModelState.AddModelError(nameof(model.AddressLine1), Languages.LanguageStrings.AddressLine1Required);
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine2Mandatory) && String.IsNullOrEmpty(model.AddressLine2))
            {
                ModelState.AddModelError(nameof(model.AddressLine2), Languages.LanguageStrings.AddressLine2Required);
            }

            if (addressOptions.HasFlag(AddressOptions.AddressLine3Mandatory) && String.IsNullOrEmpty(model.AddressLine3))
            {
                ModelState.AddModelError(nameof(model.AddressLine3), Languages.LanguageStrings.AddressLine3Required);
            }

            if (addressOptions.HasFlag(AddressOptions.CityMandatory) && String.IsNullOrEmpty(model.City))
            {
                ModelState.AddModelError(nameof(model.City), Languages.LanguageStrings.CityRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.CountyMandatory) && String.IsNullOrEmpty(model.County))
            {
                ModelState.AddModelError(nameof(model.County), Languages.LanguageStrings.CountyRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.PostCodeMandatory) && String.IsNullOrEmpty(model.Postcode))
            {
                ModelState.AddModelError(nameof(model.Postcode), Languages.LanguageStrings.PostcodeRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.BusinessNameMandatory) && String.IsNullOrEmpty(model.BusinessName))
            {
                ModelState.AddModelError(nameof(model.BusinessName), Languages.LanguageStrings.BusinessNameRequired);
            }

            if (addressOptions.HasFlag(AddressOptions.TelephoneMandatory) && String.IsNullOrEmpty(model.Telephone))
            {
                ModelState.AddModelError(nameof(model.Telephone), Languages.LanguageStrings.TelephoneRequired);
            }

            createAccountCacheItem.CaptchaText = GetRandomWord(6, CaptchaCharacters);
            model.CaptchaText = String.Empty;
        }