本文整理汇总了C#中SmartStore.Core.Domain.Customers.Customer.GetAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# Customer.GetAttribute方法的具体用法?C# Customer.GetAttribute怎么用?C# Customer.GetAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmartStore.Core.Domain.Customers.Customer
的用法示例。
在下文中一共展示了Customer.GetAttribute方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetTaxDisplayTypeFor
public TaxDisplayType GetTaxDisplayTypeFor(Customer customer, int storeId)
{
if (_cachedTaxDisplayType.HasValue)
{
return _cachedTaxDisplayType.Value;
}
int? taxDisplayType = null;
if (_taxSettings.AllowCustomersToSelectTaxDisplayType && customer != null)
{
taxDisplayType = customer.GetAttribute<int?>(SystemCustomerAttributeNames.TaxDisplayTypeId, storeId);
}
if (!taxDisplayType.HasValue && _taxSettings.EuVatEnabled)
{
if (customer != null && _taxService.Value.IsVatExempt(null, customer))
{
taxDisplayType = (int)TaxDisplayType.ExcludingTax;
}
}
if (!taxDisplayType.HasValue)
{
var customerRoles = customer.CustomerRoles;
string key = string.Format(FrameworkCacheConsumer.CUSTOMERROLES_TAX_DISPLAY_TYPES_KEY, String.Join(",", customerRoles.Select(x => x.Id)), storeId);
var cacheResult = _cacheManager.Get(key, () =>
{
var roleTaxDisplayTypes = customerRoles
.Where(x => x.TaxDisplayType.HasValue)
.OrderByDescending(x => x.TaxDisplayType.Value)
.Select(x => x.TaxDisplayType.Value);
if (roleTaxDisplayTypes.Any())
{
return (TaxDisplayType)roleTaxDisplayTypes.FirstOrDefault();
}
return _taxSettings.TaxDisplayType;
});
taxDisplayType = (int)cacheResult;
}
_cachedTaxDisplayType = (TaxDisplayType)taxDisplayType.Value;
return _cachedTaxDisplayType.Value;
}
示例2: AddCustomerTokens
public virtual void AddCustomerTokens(IList<Token> tokens, Customer customer)
{
tokens.Add(new Token("Customer.Email", customer.Email));
tokens.Add(new Token("Customer.Username", customer.Username));
tokens.Add(new Token("Customer.FullName", customer.GetFullName()));
tokens.Add(new Token("Customer.VatNumber", customer.GetAttribute<string>(SystemCustomerAttributeNames.VatNumber)));
tokens.Add(new Token("Customer.VatNumberStatus", ((VatNumberStatus)customer.GetAttribute<int>(SystemCustomerAttributeNames.VatNumberStatusId)).ToString()));
//note: we do not use SEO friendly URLS because we can get errors caused by having .(dot) in the URL (from the emauk address)
//TODO add a method for getting URL (use routing because it handles all SEO friendly URLs)
string passwordRecoveryUrl = string.Format("{0}customer/passwordrecoveryconfirm?token={1}&email={2}", _webHelper.GetStoreLocation(),
customer.GetAttribute<string>(SystemCustomerAttributeNames.PasswordRecoveryToken), HttpUtility.UrlEncode(customer.Email));
string accountActivationUrl = string.Format("{0}customer/activation?token={1}&email={2}", _webHelper.GetStoreLocation(),
customer.GetAttribute<string>(SystemCustomerAttributeNames.AccountActivationToken), HttpUtility.UrlEncode(customer.Email));
var wishlistUrl = string.Format("{0}wishlist/{1}", _webHelper.GetStoreLocation(), customer.CustomerGuid);
tokens.Add(new Token("Customer.PasswordRecoveryURL", passwordRecoveryUrl, true));
tokens.Add(new Token("Customer.AccountActivationURL", accountActivationUrl, true));
tokens.Add(new Token("Wishlist.URLForCustomer", wishlistUrl, true));
//event notification
_eventPublisher.EntityTokensAdded(customer, tokens);
}
示例3: PrepareCustomerInfoModel
protected void PrepareCustomerInfoModel(CustomerInfoModel model, Customer customer, bool excludeProperties)
{
if (model == null)
throw new ArgumentNullException("model");
if (customer == null)
throw new ArgumentNullException("customer");
model.AllowCustomersToSetTimeZone = _dateTimeSettings.AllowCustomersToSetTimeZone;
foreach (var tzi in _dateTimeHelper.GetSystemTimeZones())
model.AvailableTimeZones.Add(new SelectListItem() { Text = tzi.DisplayName, Value = tzi.Id, Selected = (excludeProperties ? tzi.Id == model.TimeZoneId : tzi.Id == _dateTimeHelper.CurrentTimeZone.Id) });
if (!excludeProperties)
{
model.VatNumber = customer.GetAttribute<string>(SystemCustomerAttributeNames.VatNumber);
model.FirstName = customer.GetAttribute<string>(SystemCustomerAttributeNames.FirstName);
model.LastName = customer.GetAttribute<string>(SystemCustomerAttributeNames.LastName);
model.Gender = customer.GetAttribute<string>(SystemCustomerAttributeNames.Gender);
var dateOfBirth = customer.GetAttribute<DateTime?>(SystemCustomerAttributeNames.DateOfBirth);
if (dateOfBirth.HasValue)
{
model.DateOfBirthDay = dateOfBirth.Value.Day;
model.DateOfBirthMonth = dateOfBirth.Value.Month;
model.DateOfBirthYear = dateOfBirth.Value.Year;
}
model.Company = customer.GetAttribute<string>(SystemCustomerAttributeNames.Company);
model.StreetAddress = customer.GetAttribute<string>(SystemCustomerAttributeNames.StreetAddress);
model.StreetAddress2 = customer.GetAttribute<string>(SystemCustomerAttributeNames.StreetAddress2);
model.ZipPostalCode = customer.GetAttribute<string>(SystemCustomerAttributeNames.ZipPostalCode);
model.City = customer.GetAttribute<string>(SystemCustomerAttributeNames.City);
model.CountryId = customer.GetAttribute<int>(SystemCustomerAttributeNames.CountryId);
model.StateProvinceId = customer.GetAttribute<int>(SystemCustomerAttributeNames.StateProvinceId);
model.Phone = customer.GetAttribute<string>(SystemCustomerAttributeNames.Phone);
model.Fax = customer.GetAttribute<string>(SystemCustomerAttributeNames.Fax);
model.CustomerNumber = customer.GetAttribute<string>(SystemCustomerAttributeNames.CustomerNumber);
//newsletter
var newsletter = _newsLetterSubscriptionService.GetNewsLetterSubscriptionByEmail(customer.Email, _storeContext.CurrentStore.Id);
model.Newsletter = newsletter != null && newsletter.Active;
model.Signature = customer.GetAttribute<string>(SystemCustomerAttributeNames.Signature);
model.Email = customer.Email;
model.Username = customer.Username;
}
else
{
if (_customerSettings.UsernamesEnabled && !_customerSettings.AllowUsersToChangeUsernames)
model.Username = customer.Username;
}
//countries and states
if (_customerSettings.CountryEnabled)
{
model.AvailableCountries.Add(new SelectListItem() { Text = _localizationService.GetResource("Address.SelectCountry"), Value = "0" });
foreach (var c in _countryService.GetAllCountries())
{
model.AvailableCountries.Add(new SelectListItem()
{
Text = c.GetLocalized(x => x.Name),
Value = c.Id.ToString(),
Selected = c.Id == model.CountryId
});
}
if (_customerSettings.StateProvinceEnabled)
{
//states
var states = _stateProvinceService.GetStateProvincesByCountryId(model.CountryId).ToList();
if (states.Count > 0)
{
foreach (var s in states)
model.AvailableStates.Add(new SelectListItem() { Text = s.GetLocalized(x => x.Name), Value = s.Id.ToString(), Selected = (s.Id == model.StateProvinceId) });
}
else
model.AvailableStates.Add(new SelectListItem() { Text = _localizationService.GetResource("Address.OtherNonUS"), Value = "0" });
}
}
model.DisplayVatNumber = _taxSettings.EuVatEnabled;
model.VatNumberStatusNote = ((VatNumberStatus)customer.GetAttribute<int>(SystemCustomerAttributeNames.VatNumberStatusId))
.GetLocalizedEnum(_localizationService, _workContext);
model.GenderEnabled = _customerSettings.GenderEnabled;
model.DateOfBirthEnabled = _customerSettings.DateOfBirthEnabled;
model.CompanyEnabled = _customerSettings.CompanyEnabled;
model.CompanyRequired = _customerSettings.CompanyRequired;
model.StreetAddressEnabled = _customerSettings.StreetAddressEnabled;
model.StreetAddressRequired = _customerSettings.StreetAddressRequired;
model.StreetAddress2Enabled = _customerSettings.StreetAddress2Enabled;
model.StreetAddress2Required = _customerSettings.StreetAddress2Required;
model.ZipPostalCodeEnabled = _customerSettings.ZipPostalCodeEnabled;
model.ZipPostalCodeRequired = _customerSettings.ZipPostalCodeRequired;
model.CityEnabled = _customerSettings.CityEnabled;
model.CityRequired = _customerSettings.CityRequired;
model.CountryEnabled = _customerSettings.CountryEnabled;
model.StateProvinceEnabled = _customerSettings.StateProvinceEnabled;
model.PhoneEnabled = _customerSettings.PhoneEnabled;
model.PhoneRequired = _customerSettings.PhoneRequired;
model.FaxEnabled = _customerSettings.FaxEnabled;
model.FaxRequired = _customerSettings.FaxRequired;
//.........这里部分代码省略.........
示例4: GetCustomerTimeZone
/// <summary>
/// Gets a customer time zone
/// </summary>
/// <param name="customer">Customer</param>
/// <returns>Customer time zone; if customer is null, then default store time zone</returns>
public virtual TimeZoneInfo GetCustomerTimeZone(Customer customer)
{
//registered user
TimeZoneInfo timeZoneInfo = null;
if (_dateTimeSettings.AllowCustomersToSetTimeZone)
{
string timeZoneId = string.Empty;
if (customer != null)
timeZoneId = customer.GetAttribute<string>(SystemCustomerAttributeNames.TimeZoneId, _genericAttributeService);
try
{
if (!String.IsNullOrEmpty(timeZoneId))
timeZoneInfo = FindTimeZoneById(timeZoneId);
}
catch (Exception exc)
{
Debug.Write(exc.ToString());
}
}
//default timezone
if (timeZoneInfo == null)
timeZoneInfo = this.DefaultStoreTimeZone;
return timeZoneInfo;
}
示例5: PrepareCustomerModelForList
protected CustomerModel PrepareCustomerModelForList(Customer customer)
{
return new CustomerModel()
{
Id = customer.Id,
Email = !String.IsNullOrEmpty(customer.Email) ? customer.Email : (customer.IsGuest() ? _localizationService.GetResource("Admin.Customers.Guest") : "".NaIfEmpty()),
Username = customer.Username,
FullName = customer.GetFullName(),
Company = customer.GetAttribute<string>(SystemCustomerAttributeNames.Company),
Phone = customer.GetAttribute<string>(SystemCustomerAttributeNames.Phone),
ZipPostalCode = customer.GetAttribute<string>(SystemCustomerAttributeNames.ZipPostalCode),
CustomerRoleNames = GetCustomerRolesNames(customer.CustomerRoles.ToList()),
Active = customer.Active,
CreatedOn = _dateTimeHelper.ConvertToUserTime(customer.CreatedOnUtc, DateTimeKind.Utc),
LastActivityDate = _dateTimeHelper.ConvertToUserTime(customer.LastActivityDateUtc, DateTimeKind.Utc),
};
}
示例6: IsDiscountValid
/// <summary>
/// Check discount requirements
/// </summary>
/// <param name="discount">Discount</param>
/// <param name="customer">Customer</param>
/// <returns>true - requirement is met; otherwise, false</returns>
public virtual bool IsDiscountValid(Discount discount, Customer customer)
{
if (discount == null)
throw new ArgumentNullException("discount");
var couponCodeToValidate = "";
if (customer != null)
couponCodeToValidate = customer.GetAttribute<string>(SystemCustomerAttributeNames.DiscountCouponCode, _genericAttributeService);
return IsDiscountValid(discount, customer, couponCodeToValidate);
}
示例7: LoadActivePaymentMethods
/// <summary>
/// Load active payment methods
/// </summary>
/// <param name="customer">Filter payment methods by customer and apply payment method restrictions; null to load all records</param>
/// <param name="cart">Filter payment methods by cart amount; null to load all records</param>
/// <param name="storeId">Filter payment methods by store identifier; pass 0 to load all records</param>
/// <param name="types">Filter payment methods by payment method types</param>
/// <param name="provideFallbackMethod">Provide a fallback payment method if none is active</param>
/// <returns>Payment methods</returns>
public virtual IEnumerable<Provider<IPaymentMethod>> LoadActivePaymentMethods(
Customer customer = null,
IList<OrganizedShoppingCartItem> cart = null,
int storeId = 0,
PaymentMethodType[] types = null,
bool provideFallbackMethod = true)
{
List<int> customerRoleIds = null;
int? selectedShippingMethodId = null;
decimal? orderSubTotal = null;
decimal? orderTotal = null;
IList<PaymentMethod> allMethods = null;
IEnumerable<Provider<IPaymentMethod>> allProviders = null;
if (types != null && types.Any())
allProviders = LoadAllPaymentMethods(storeId).Where(x => types.Contains(x.Value.PaymentMethodType));
else
allProviders = LoadAllPaymentMethods(storeId);
var activeProviders = allProviders
.Where(p =>
{
if (!p.Value.IsActive || !_paymentSettings.ActivePaymentMethodSystemNames.Contains(p.Metadata.SystemName, StringComparer.InvariantCultureIgnoreCase))
return false;
if (customer != null)
{
if (allMethods == null)
allMethods = GetAllPaymentMethods();
var method = allMethods.FirstOrDefault(x => x.PaymentMethodSystemName.IsCaseInsensitiveEqual(p.Metadata.SystemName));
if (method != null)
{
// method restricted by customer role id?
var excludedRoleIds = method.ExcludedCustomerRoleIds.ToIntArray();
if (excludedRoleIds.Any())
{
if (customerRoleIds == null)
customerRoleIds = customer.CustomerRoles.Where(r => r.Active).Select(r => r.Id).ToList();
if (customerRoleIds != null && !customerRoleIds.Except(excludedRoleIds).Any())
return false;
}
// method restricted by selected shipping method?
var excludedShippingMethodIds = method.ExcludedShippingMethodIds.ToIntArray();
if (excludedShippingMethodIds.Any())
{
if (!selectedShippingMethodId.HasValue)
{
var selectedShipping = customer.GetAttribute<ShippingOption>(SystemCustomerAttributeNames.SelectedShippingOption, storeId);
selectedShippingMethodId = (selectedShipping == null ? 0 : selectedShipping.ShippingMethodId);
}
if ((selectedShippingMethodId ?? 0) != 0 && excludedShippingMethodIds.Contains(selectedShippingMethodId.Value))
return false;
}
// method restricted by country of selected billing or shipping address?
var excludedCountryIds = method.ExcludedCountryIds.ToIntArray();
if (excludedCountryIds.Any())
{
int countryId = 0;
if (method.CountryExclusionContext == CountryRestrictionContextType.ShippingAddress)
countryId = (customer.ShippingAddress != null ? (customer.ShippingAddress.CountryId ?? 0) : 0);
else
countryId = (customer.BillingAddress != null ? (customer.BillingAddress.CountryId ?? 0) : 0);
if (countryId != 0 && excludedCountryIds.Contains(countryId))
return false;
}
// method restricted by min\max order amount?
if ((method.MinimumOrderAmount.HasValue || method.MaximumOrderAmount.HasValue) && cart != null)
{
decimal compareAmount = decimal.Zero;
if (method.AmountRestrictionContext == AmountRestrictionContextType.SubtotalAmount)
{
if (!orderSubTotal.HasValue)
{
decimal orderSubTotalDiscountAmountBase = decimal.Zero;
Discount orderSubTotalAppliedDiscount = null;
decimal subTotalWithoutDiscountBase = decimal.Zero;
decimal subTotalWithDiscountBase = decimal.Zero;
_orderTotalCalculationService.GetShoppingCartSubTotal(cart, out orderSubTotalDiscountAmountBase, out orderSubTotalAppliedDiscount,
out subTotalWithoutDiscountBase, out subTotalWithDiscountBase);
orderSubTotal = _currencyService.ConvertFromPrimaryStoreCurrency(subTotalWithoutDiscountBase, _services.WorkContext.WorkingCurrency);
}
//.........这里部分代码省略.........