/// <summary> /// Deletes an address /// </summary> /// <param name="address">Address</param> public virtual void DeleteAddress(Address address) { if (address == null) throw new ArgumentNullException("address"); _addressRepository.Delete(address); //cache _cacheManager.RemoveByPattern(ADDRESSES_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(address); }
/// <summary> /// Updates the address /// </summary> /// <param name="address">Address</param> public virtual void UpdateAddress(Address address) { if (address == null) throw new ArgumentNullException("address"); ////some validation //if (address.CountryId == 0) // address.CountryId = null; //if (address.StateProvinceId == 0) // address.StateProvinceId = null; _addressRepository.Update(address); //cache _cacheManager.RemoveByPattern(ADDRESSES_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(address); }
public ActionResult Register(RegisterModel model, string returnUrl, bool captchaValid, FormCollection form) { //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(); //Save a new record _workContext.CurrentCustomer = _customerService.InsertGuestCustomer(); } var customer = _workContext.CurrentCustomer; //validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnRegistrationPage && !captchaValid) { ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha")); } 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, isApproved); var registrationResult = _customerRegistrationService.RegisterCustomer(registrationRequest); if (registrationResult.Success) { //properties if (_dateTimeSettings.AllowCustomersToSetTimeZone) { _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.TimeZoneId, model.TimeZoneId); } //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); //save customer attributes _genericAttributeService.SaveAttribute(customer, SystemCustomerAttributeNames.CustomCustomerAttributes, ""); //login customer now if (isApproved) _authenticationService.SignIn(customer, true); //insert default address (if possible) var defaultAddress = new Address { Name = customer.GetAttribute<string>(SystemCustomerAttributeNames.FirstName)+" "+customer.GetAttribute<string>(SystemCustomerAttributeNames.LastName), Address1 = customer.GetAttribute<string>(SystemCustomerAttributeNames.StreetAddress), Address2 = customer.GetAttribute<string>(SystemCustomerAttributeNames.StreetAddress2) }; if (this._addressService.IsAddressValid(defaultAddress)) { //set default address customer.Addresses.Add(defaultAddress); _customerService.UpdateCustomer(customer); } ////notifications //if (_customerSettings.NotifyNewCustomerRegistration) // _workflowMessageService.SendCustomerRegisteredNotificationMessage(customer, _localizationSettings.DefaultAdminLanguageId); 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 // PrepareCustomerRegisterModel(model, true, customerAttributesXml); return View(model); }
/// <summary> /// Gets a value indicating whether address is valid (can be saved) /// </summary> /// <param name="address">Address to validate</param> /// <returns>Result</returns> public virtual bool IsAddressValid(Address address) { //if (address == null) // throw new ArgumentNullException("address"); //if (String.IsNullOrWhiteSpace(address.FirstName)) // return false; //if (String.IsNullOrWhiteSpace(address.LastName)) // return false; //if (String.IsNullOrWhiteSpace(address.Email)) // return false; //if (_addressSettings.CompanyEnabled && // _addressSettings.CompanyRequired && // String.IsNullOrWhiteSpace(address.Company)) // return false; //if (_addressSettings.StreetAddressEnabled && // _addressSettings.StreetAddressRequired && // String.IsNullOrWhiteSpace(address.Address1)) // return false; //if (_addressSettings.StreetAddress2Enabled && // _addressSettings.StreetAddress2Required && // String.IsNullOrWhiteSpace(address.Address2)) // return false; //if (_addressSettings.ZipPostalCodeEnabled && // _addressSettings.ZipPostalCodeRequired && // String.IsNullOrWhiteSpace(address.ZipPostalCode)) // return false; //if (_addressSettings.CountryEnabled) //{ // if (address.CountryId == null || address.CountryId.Value == 0) // return false; // var country = _countryService.GetCountryById(address.CountryId.Value); // if (country == null) // return false; // if (_addressSettings.StateProvinceEnabled) // { // var states = _stateProvinceService.GetStateProvincesByCountryId(country.Id); // if (states.Count > 0) // { // if (address.StateProvinceId == null || address.StateProvinceId.Value == 0) // return false; // var state = states.FirstOrDefault(x => x.Id == address.StateProvinceId.Value); // if (state == null) // return false; // } // } //} //if (_addressSettings.CityEnabled && // _addressSettings.CityRequired && // String.IsNullOrWhiteSpace(address.City)) // return false; //if (_addressSettings.PhoneEnabled && // _addressSettings.PhoneRequired && // String.IsNullOrWhiteSpace(address.PhoneNumber)) // return false; //if (_addressSettings.FaxEnabled && // _addressSettings.FaxRequired && // String.IsNullOrWhiteSpace(address.FaxNumber)) // return false; //var attributes = _addressAttributeService.GetAllAddressAttributes(); //if (attributes.Any(x => x.IsRequired)) // return false; return true; }
protected virtual void InstallCustomersAndUsers(string defaultUserEmail, string defaultUserPassword) { var crAdministrators = new CustomerRole { Name = "Administrators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Administrators, }; var crForumModerators = new CustomerRole { Name = "Forum Moderators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.ForumModerators, }; var crRegistered = new CustomerRole { Name = "Registered", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Registered, }; var crGuests = new CustomerRole { Name = "Guests", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Guests, }; var crVendors = new CustomerRole { Name = "Vendors", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Vendors, }; var customerRoles = new List<CustomerRole> { crAdministrators, crForumModerators, crRegistered, crGuests, crVendors }; _customerRoleRepository.Insert(customerRoles); //admin user var adminUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = defaultUserEmail, Username = defaultUserEmail, Password = defaultUserPassword, PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultAdminUserAddress = new Address { Name = "Muharremm haliloðlu", Address1 = "beykoz", Address2 = "" }; adminUser.Addresses.Add(defaultAdminUserAddress); adminUser.CustomerRoles.Add(crAdministrators); adminUser.CustomerRoles.Add(crForumModerators); adminUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(adminUser); //set default customer name //_genericAttributeService.SaveAttribute(adminUser, SystemCustomerAttributeNames.FirstName, "John"); //_genericAttributeService.SaveAttribute(adminUser, SystemCustomerAttributeNames.LastName, "Smith"); //search engine (crawler) built-in user var searchEngineUser = new Customer { Email = "builtin@search_engine_record.com", CustomerGuid = Guid.NewGuid(), PasswordFormat = PasswordFormat.Clear, Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.SearchEngine, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; searchEngineUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(searchEngineUser); //built-in user for background tasks var backgroundTaskUser = new Customer { Email = "*****@*****.**", CustomerGuid = Guid.NewGuid(), PasswordFormat = PasswordFormat.Clear, Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.BackgroundTask, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; backgroundTaskUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(backgroundTaskUser); }