protected CustomerRoleModel PrepareCustomerRoleModel(CustomerRole customerRole) { var model = customerRole.ToModel(); var product = _productService.GetProductById(customerRole.PurchasedWithProductId); if (product != null) { model.PurchasedWithProductName = product.Name; } return model; }
/// <summary> /// Authorize permission /// </summary> /// <param name="permissionRecordSystemName">Permission record system name</param> /// <param name="customerRole">Customer role</param> /// <returns>true - authorized; otherwise, false</returns> protected virtual bool Authorize(string permissionRecordSystemName, CustomerRole customerRole) { if (String.IsNullOrEmpty(permissionRecordSystemName)) return false; string key = string.Format(PERMISSIONS_ALLOWED_KEY, customerRole.Id, permissionRecordSystemName); return _cacheManager.Get(key, () => { var permissionRecord = _permissionRecordRepository.Table.Where(x => x.CustomerRoles.Contains(customerRole.Id) && x.SystemName== permissionRecordSystemName).ToList(); if (permissionRecord.Count() > 0) return true; return false; }); }
/// <summary> /// Authorize permission /// </summary> /// <param name="permissionRecordSystemName">Permission record system name</param> /// <param name="customerRole">Customer role</param> /// <returns>true - authorized; otherwise, false</returns> protected virtual bool Authorize(string permissionRecordSystemName, CustomerRole customerRole) { if (String.IsNullOrEmpty(permissionRecordSystemName)) return false; string key = string.Format(PERMISSIONS_ALLOWED_KEY, customerRole.Id, permissionRecordSystemName); return _cacheManager.Get(key, () => { foreach (var permission1 in customerRole.PermissionRecords) if (permission1.SystemName.Equals(permissionRecordSystemName, StringComparison.InvariantCultureIgnoreCase)) return true; return false; }); }
public void Can_check_taxExempt_customer_in_taxExemptCustomerRole() { var customer = new Customer(); customer.IsTaxExempt = false; _taxService.IsTaxExempt(null, customer).ShouldEqual(false); var customerRole = new CustomerRole() { TaxExempt = true, Active = true }; customer.CustomerRoles.Add(customerRole); _taxService.IsTaxExempt(null, customer).ShouldEqual(true); customerRole.TaxExempt = false; _taxService.IsTaxExempt(null, customer).ShouldEqual(false); //if role is not active, weshould ignore 'TaxExempt' property customerRole.Active = false; _taxService.IsTaxExempt(null, customer).ShouldEqual(false); }
public static CustomerRole ToEntity(this CustomerRoleModel model, CustomerRole destination) { return Mapper.Map(model, destination); }
/// <summary> /// Updates the customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void UpdateCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); _customerRoleRepository.Update(customerRole); _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(customerRole); }
/// <summary> /// Delete a customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void DeleteCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); if (customerRole.IsSystemRole) throw new NopException("System role could not be deleted"); _customerRoleRepository.Delete(customerRole); _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(customerRole); }
protected virtual void InstallCustomersAndUsers(string defaultUserEmail, string defaultUserPassword) { var crAdministrators = new CustomerRole { Id = 1, _id = ObjectId.GenerateNewId().ToString(), Name = "Administrators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Administrators, }; _customerRoleRepository.Insert(crAdministrators); var crForumModerators = new CustomerRole { Id = 2, _id = ObjectId.GenerateNewId().ToString(), Name = "Forum Moderators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.ForumModerators, }; _customerRoleRepository.Insert(crForumModerators); var crRegistered = new CustomerRole { Id = 3, _id = ObjectId.GenerateNewId().ToString(), Name = "Registered", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Registered, }; _customerRoleRepository.Insert(crRegistered); var crGuests = new CustomerRole { Id = 4, _id = ObjectId.GenerateNewId().ToString(), Name = "Guests", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Guests, }; _customerRoleRepository.Insert(crGuests); var crVendors = new CustomerRole { Id = 5, _id = ObjectId.GenerateNewId().ToString(), Name = "Vendors", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Vendors, }; _customerRoleRepository.Insert(crVendors); //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 { Id = 1, _id = ObjectId.GenerateNewId().ToString(), FirstName = "John", LastName = "Smith", PhoneNumber = "12345678", Email = "*****@*****.**", FaxNumber = "", Company = "GrandNode LTD", Address1 = "21 West 52nd Street", Address2 = "", City = "New York", StateProvinceId = _stateProvinceRepository.Table.FirstOrDefault(sp => sp.Name == "New York").Id, CountryId = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "USA").Id, ZipPostalCode = "10021", CreatedOnUtc = DateTime.UtcNow, }; adminUser.Addresses.Add(defaultAdminUserAddress); adminUser.BillingAddress = defaultAdminUserAddress; adminUser.ShippingAddress = 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, AdminComment = "Built-in system guest record used for requests from search engines.", 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, AdminComment = "Built-in system record used for background tasks.", Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.BackgroundTask, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; backgroundTaskUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(backgroundTaskUser); }
public virtual void InsertCustomerRoleInCustomer(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("productWarehouse"); var updatebuilder = Builders<Customer>.Update; var update = updatebuilder.AddToSet(p => p.CustomerRoles, customerRole); _customerRepository.Collection.UpdateOneAsync(new BsonDocument("Id", customerRole.CustomerId), update); }
public virtual void DeleteCustomerRoleInCustomer(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("pwi"); var updatebuilder = Builders<Customer>.Update; var update = updatebuilder.Pull(p => p.CustomerRoles, customerRole); _customerRepository.Collection.UpdateOneAsync(new BsonDocument("Id", customerRole.CustomerId), update); }
/// <summary> /// Updates the customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void UpdateCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); _customerRoleRepository.Update(customerRole); var builder = Builders<Customer>.Filter; var filter = builder.ElemMatch(x => x.CustomerRoles, y => y.Id == customerRole.Id); var update = Builders<Customer>.Update .Set(x => x.CustomerRoles.ElementAt(-1), customerRole); var result = _customerRepository.Collection.UpdateManyAsync(filter, update).Result; _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(customerRole); }
public void Can_get_final_product_price_with_tier_prices_by_customerRole() { var product = new Product { Id = 1, Name = "Product name 1", Price = 12.34M, CustomerEntersPrice = false, Published = true, }; //customer roles var customerRole1 = new CustomerRole() { Id = 1, Name = "Some role 1", Active = true, }; var customerRole2 = new CustomerRole() { Id = 2, Name = "Some role 2", Active = true, }; //add tier prices product.TierPrices.Add(new TierPrice() { Price = 10, Quantity = 2, Product= product, CustomerRole = customerRole1 }); product.TierPrices.Add(new TierPrice() { Price = 9, Quantity = 2, Product = product, CustomerRole = customerRole2 }); product.TierPrices.Add(new TierPrice() { Price = 8, Quantity = 5, Product= product, CustomerRole = customerRole1 }); product.TierPrices.Add(new TierPrice() { Price = 5, Quantity = 10, Product = product, CustomerRole = customerRole2 }); //set HasTierPrices property product.HasTierPrices = true; //customer Customer customer = new Customer(); customer.CustomerRoles.Add(customerRole1); _priceCalcService.GetFinalPrice(product, customer, 0, false, 1).ShouldEqual(12.34M); _priceCalcService.GetFinalPrice(product, customer, 0, false, 2).ShouldEqual(10); _priceCalcService.GetFinalPrice(product, customer, 0, false, 3).ShouldEqual(10); _priceCalcService.GetFinalPrice(product, customer, 0, false, 5).ShouldEqual(8); _priceCalcService.GetFinalPrice(product, customer, 0, false, 10).ShouldEqual(8); }
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 { FirstName = "John", LastName = "Smith", PhoneNumber = "12345678", Email = defaultUserEmail, FaxNumber = "", Company = "Nop Solutions Ltd", Address1 = "21 West 52nd Street", Address2 = "", City = "New York", StateProvince = _stateProvinceRepository.Table.FirstOrDefault(sp => sp.Name == "New York"), Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "USA"), ZipPostalCode = "10021", CreatedOnUtc = DateTime.UtcNow, }; adminUser.Addresses.Add(defaultAdminUserAddress); adminUser.BillingAddress = defaultAdminUserAddress; adminUser.ShippingAddress = 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"); //second user var secondUserEmail = "*****@*****.**"; var secondUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = secondUserEmail, Username = secondUserEmail, Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultSecondUserAddress = new Address { FirstName = "Steve", LastName = "Gates", PhoneNumber = "87654321", Email = secondUserEmail, FaxNumber = "", Company = "Steve Company", Address1 = "750 Bel Air Rd.", Address2 = "", City = "Los Angeles", StateProvince = _stateProvinceRepository.Table.FirstOrDefault(sp => sp.Name == "California"), Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "USA"), ZipPostalCode = "90077", CreatedOnUtc = DateTime.UtcNow, }; secondUser.Addresses.Add(defaultSecondUserAddress); secondUser.BillingAddress = defaultSecondUserAddress; secondUser.ShippingAddress = defaultSecondUserAddress; secondUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(secondUser); //set default customer name _genericAttributeService.SaveAttribute(secondUser, SystemCustomerAttributeNames.FirstName, defaultSecondUserAddress.FirstName); _genericAttributeService.SaveAttribute(secondUser, SystemCustomerAttributeNames.LastName, defaultSecondUserAddress.LastName); //third user var thirdUserEmail = "*****@*****.**"; var thirdUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = thirdUserEmail, Username = thirdUserEmail, Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultThirdUserAddress = new Address { FirstName = "Arthur", LastName = "Holmes", PhoneNumber = "111222333", Email = thirdUserEmail, FaxNumber = "", Company = "Holmes Company", Address1 = "221B Baker Street", Address2 = "", City = "London", Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "GBR"), ZipPostalCode = "NW1 6XE", CreatedOnUtc = DateTime.UtcNow, }; thirdUser.Addresses.Add(defaultThirdUserAddress); thirdUser.BillingAddress = defaultThirdUserAddress; thirdUser.ShippingAddress = defaultThirdUserAddress; thirdUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(thirdUser); //set default customer name _genericAttributeService.SaveAttribute(thirdUser, SystemCustomerAttributeNames.FirstName, defaultThirdUserAddress.FirstName); _genericAttributeService.SaveAttribute(thirdUser, SystemCustomerAttributeNames.LastName, defaultThirdUserAddress.LastName); //fourth user var fourthUserEmail = "*****@*****.**"; var fourthUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = fourthUserEmail, Username = fourthUserEmail, Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultFourthUserAddress = new Address { FirstName = "James", LastName = "Pan", PhoneNumber = "369258147", Email = fourthUserEmail, FaxNumber = "", Company = "Pan Company", Address1 = "St Katharine’s West 16", Address2 = "", City = "St Andrews", Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "GBR"), ZipPostalCode = "KY16 9AX", CreatedOnUtc = DateTime.UtcNow, }; fourthUser.Addresses.Add(defaultFourthUserAddress); fourthUser.BillingAddress = defaultFourthUserAddress; fourthUser.ShippingAddress = defaultFourthUserAddress; fourthUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(fourthUser); //set default customer name _genericAttributeService.SaveAttribute(fourthUser, SystemCustomerAttributeNames.FirstName, defaultFourthUserAddress.FirstName); _genericAttributeService.SaveAttribute(fourthUser, SystemCustomerAttributeNames.LastName, defaultFourthUserAddress.LastName); //fifth user var fifthUserEmail = "*****@*****.**"; var fifthUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = fifthUserEmail, Username = fifthUserEmail, Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultFifthUserAddress = new Address { FirstName = "Brenda", LastName = "Lindgren", PhoneNumber = "14785236", Email = fifthUserEmail, FaxNumber = "", Company = "Brenda Company", Address1 = "1249 Tongass Avenue, Suite B", Address2 = "", City = "Ketchikan", StateProvince = _stateProvinceRepository.Table.FirstOrDefault(sp => sp.Name == "Alaska"), Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "USA"), ZipPostalCode = "99901", CreatedOnUtc = DateTime.UtcNow, }; fifthUser.Addresses.Add(defaultFifthUserAddress); fifthUser.BillingAddress = defaultFifthUserAddress; fifthUser.ShippingAddress = defaultFifthUserAddress; fifthUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(fifthUser); //set default customer name _genericAttributeService.SaveAttribute(fifthUser, SystemCustomerAttributeNames.FirstName, defaultFifthUserAddress.FirstName); _genericAttributeService.SaveAttribute(fifthUser, SystemCustomerAttributeNames.LastName, defaultFifthUserAddress.LastName); //sixth user var sixthUserEmail = "*****@*****.**"; var sixthUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = sixthUserEmail, Username = sixthUserEmail, Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultSixthUserAddress = new Address { FirstName = "Victoria", LastName = "Terces", PhoneNumber = "45612378", Email = sixthUserEmail, FaxNumber = "", Company = "Terces Company", Address1 = "201 1st Avenue South", Address2 = "", City = "Saskatoon", StateProvince = _stateProvinceRepository.Table.FirstOrDefault(sp => sp.Name == "Saskatchewan"), Country = _countryRepository.Table.FirstOrDefault(c => c.ThreeLetterIsoCode == "CAN"), ZipPostalCode = "S7K 1J9", CreatedOnUtc = DateTime.UtcNow, }; sixthUser.Addresses.Add(defaultSixthUserAddress); sixthUser.BillingAddress = defaultSixthUserAddress; sixthUser.ShippingAddress = defaultSixthUserAddress; sixthUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(sixthUser); //set default customer name _genericAttributeService.SaveAttribute(sixthUser, SystemCustomerAttributeNames.FirstName, defaultSixthUserAddress.FirstName); _genericAttributeService.SaveAttribute(sixthUser, SystemCustomerAttributeNames.LastName, defaultSixthUserAddress.LastName); //search engine (crawler) built-in user var searchEngineUser = new Customer { Email = "builtin@search_engine_record.com", CustomerGuid = Guid.NewGuid(), PasswordFormat = PasswordFormat.Clear, AdminComment = "Built-in system guest record used for requests from search engines.", 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, AdminComment = "Built-in system record used for background tasks.", Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.BackgroundTask, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; backgroundTaskUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(backgroundTaskUser); }
protected virtual void UpdateAttributeLocales(CustomerRole specificationAttribute, CustomerRoleModel model) { foreach (var localized in model.Locales) { _localizedEntityService.SaveLocalizedValue(specificationAttribute, x => x.Description, localized.Description, localized.LanguageId); } }
/// <summary> /// Install permissions /// </summary> /// <param name="permissionProvider">Permission provider</param> public virtual void InstallPermissions(IPermissionProvider permissionProvider) { //install new permissions var permissions = permissionProvider.GetPermissions(); foreach (var permission in permissions) { var permission1 = GetPermissionRecordBySystemName(permission.SystemName); if (permission1 == null) { //new permission (install it) permission1 = new PermissionRecord { Name = permission.Name, SystemName = permission.SystemName, Category = permission.Category, }; //default customer role mappings var defaultPermissions = permissionProvider.GetDefaultPermissions(); foreach (var defaultPermission in defaultPermissions) { var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName); if (customerRole == null) { //new role (save it) customerRole = new CustomerRole { Name = defaultPermission.CustomerRoleSystemName, Active = true, SystemName = defaultPermission.CustomerRoleSystemName }; _customerService.InsertCustomerRole(customerRole); } var defaultMappingProvided = (from p in defaultPermission.PermissionRecords where p.SystemName == permission1.SystemName select p).Any(); var mappingExists = (from p in customerRole.PermissionRecords where p.SystemName == permission1.SystemName select p).Any(); if (defaultMappingProvided && !mappingExists) { permission1.CustomerRoles.Add(customerRole); } } //save new permission InsertPermissionRecord(permission1); //save localization permission1.SaveLocalizedPermissionName(_localizationService, _languageService); } } }
/// <summary> /// Delete a customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void DeleteCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); if (customerRole.IsSystemRole) throw new NopException("System role could not be deleted"); _customerRoleRepository.Delete(customerRole); var builder = Builders<Customer>.Update; var updatefilter = builder.PullFilter(x => x.CustomerRoles, y => y.Id == customerRole.Id); var result = _customerRepository.Collection.UpdateManyAsync(new BsonDocument(), updatefilter).Result; _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(customerRole); }
public void Shipping_should_be_free_when_customer_is_in_role_with_free_shipping() { var sci1 = new ShoppingCartItem() { AttributesXml = "", Quantity = 3, ProductVariant = new ProductVariant() { Weight = 1.5M, Height = 2.5M, Length = 3.5M, Width = 4.5M, IsFreeShipping = false, IsShipEnabled = true, } }; var sci2 = new ShoppingCartItem() { AttributesXml = "", Quantity = 4, ProductVariant = new ProductVariant() { Weight = 11.5M, Height = 12.5M, Length = 13.5M, Width = 14.5M, IsFreeShipping = false, IsShipEnabled = true, } }; var cart = new List<ShoppingCartItem>() { sci1, sci2 }; var customer = new Customer(); var customerRole1 = new CustomerRole() { Active = true, FreeShipping = true, }; var customerRole2 = new CustomerRole() { Active = true, FreeShipping = false, }; customer.CustomerRoles.Add(customerRole1); customer.CustomerRoles.Add(customerRole2); cart.ForEach(sci => sci.Customer = customer); cart.ForEach(sci => sci.CustomerId = customer.Id); _orderTotalCalcService.IsFreeShipping(cart).ShouldEqual(true); }
protected virtual void InstallVendorCustomersAndUsers() { var crVendorManagers = new CustomerRole { Name = "Vendor Managers", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.VendorManager, }; _customerRoleRepository.Insert(crVendorManagers); //admin user var vendorManagerUser = new Customer() { CustomerGuid = Guid.NewGuid(), Email = "*****@*****.**", Username = "******", Password = "******", PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultAdminUserAddress = new Address() { FirstName = "David", LastName = "Blend", PhoneNumber = "12345678", Email = "*****@*****.**", FaxNumber = "", Company = "hz", Address1 = "21 West 52nd Street", Address2 = "", City = "New York", StateProvince = _stateProvinceRepository.Table.Where(sp => sp.Name == "New York").FirstOrDefault(), Country = _countryRepository.Table.Where(c => c.ThreeLetterIsoCode == "USA").FirstOrDefault(), ZipPostalCode = "10021", CreatedOnUtc = DateTime.UtcNow, }; vendorManagerUser.Addresses.Add(defaultAdminUserAddress); vendorManagerUser.BillingAddress = defaultAdminUserAddress; vendorManagerUser.ShippingAddress = defaultAdminUserAddress; vendorManagerUser.CustomerRoles.Add(crVendorManagers); vendorManagerUser.CustomerRoles.Add(GetCustomerRolByName()); //adminUser.CustomerRoles.Add(); _customerRepository.Insert(vendorManagerUser); //set default customer name _genericAttributeService.SaveAttribute(vendorManagerUser, SystemCustomerAttributeNames.FirstName, "David"); _genericAttributeService.SaveAttribute(vendorManagerUser, SystemCustomerAttributeNames.LastName, "Blend"); var mainVendor = _vendorRepository.Table.Where(s => s.Name == "Main Vendor").FirstOrDefault(); mainVendor.VendorCustomers.Add(new VendorCustomer() { Customer = _customerRepository.Table.Where(c => c.Email == "*****@*****.**").Single(), DisplayOrder = 1, }); }