public void AddMarket(MarketId marketId)
 {
     if (this._knownMarkets.Contains(marketId))
     {
         return;
     }
     lock (this._knownConfigurationLock)
     {
         if (this._knownMarkets.Contains(marketId))
         {
             return;
         }
         this._knownMarkets.Add(marketId);
         foreach (Mediachase.Commerce.Currency knownCurrency in this._knownCurrencies)
         {
             this.AddField((IFieldConfiguration)ProviderConfiguration.CreateListPriceField(knownCurrency, marketId));
             this.AddField((IFieldConfiguration)ProviderConfiguration.CreateSalePriceField(knownCurrency, marketId));
         }
     }
 }
 public void AddCurrency(Mediachase.Commerce.Currency currency)
 {
     if (this._knownCurrencies.Contains(currency))
     {
         return;
     }
     lock (this._knownConfigurationLock)
     {
         if (this._knownCurrencies.Contains(currency))
         {
             return;
         }
         this._knownCurrencies.Add(currency);
         foreach (MarketId knownMarket in this._knownMarkets)
         {
             this.AddField((IFieldConfiguration)ProviderConfiguration.CreateListPriceField(currency, knownMarket));
             this.AddField((IFieldConfiguration)ProviderConfiguration.CreateSalePriceField(currency, knownMarket));
         }
     }
 }
 private void BuildFieldConfiguration()
 {
     this._multilanguageFieldGenerators = new List <ProviderConfiguration.MultilanguageFieldGenerator>();
     this._fields = new List <IFieldConfiguration>();
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <int>("catalogentryid", (Expression <Func <FindDocument, int> >)(d => d.CatalogEntryId)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <DateTime>("startdate", (Expression <Func <FindDocument, DateTime> >)(d => d.StartDate)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <DateTime>("enddate", (Expression <Func <FindDocument, DateTime> >)(d => d.EndDate)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <string>("name", (Expression <Func <FindDocument, string> >)(d => d.Name), 1 != 0));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <string>("catalogentrycode", (Expression <Func <FindDocument, string> >)(d => d.CatalogEntryCode), 1 != 0));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <string>("metaclassname", (Expression <Func <FindDocument, string> >)(d => d.MetaClassName)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <string>("catalogentrytype", (Expression <Func <FindDocument, string> >)(d => d.CatalogEntryType)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("languages", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.Languages)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("currencies", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.Currencies)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("markets", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.Markets)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("catalogs", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.Catalogs)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("outlines", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.Outlines)));
     this._fields.Add((IFieldConfiguration) new ProviderFieldConfiguration <IEnumerable <string> >("catalognodes", (Expression <Func <FindDocument, IEnumerable <string> > >)(d => d.CatalogNodes)));
     foreach (MetaField entryUserMetaField in ProviderConfiguration.GetCatalogEntryUserMetaFields())
     {
         Type type;
         ProviderConfiguration._documentFieldTypes.TryGetValue(entryUserMetaField.DataType, out type);
         bool safeAllowSearch = entryUserMetaField.SafeAllowSearch;
         bool flag1           = string.Equals(entryUserMetaField.Attributes["includeindefaultsearch"], "true", StringComparison.OrdinalIgnoreCase);
         bool flag2           = string.Equals(entryUserMetaField.Attributes["indexsortable"], "true", StringComparison.OrdinalIgnoreCase);
         bool flag3           = string.Equals(entryUserMetaField.Attributes["indexstored"], "true", StringComparison.OrdinalIgnoreCase);
         if (type != (Type)null && safeAllowSearch | flag1 | flag2 | flag3)
         {
             bool isIncludedInDefaultSearch = flag1 && (type == typeof(string) || type == typeof(int?) || type == typeof(IEnumerable <string>));
             if (entryUserMetaField.MultiLanguageValue)
             {
                 this._multilanguageFieldGenerators.Add(new ProviderConfiguration.MultilanguageFieldGenerator(entryUserMetaField.Name, type, isIncludedInDefaultSearch));
             }
             else
             {
                 this._fields.Add(ProviderConfiguration.CreateUserField(entryUserMetaField.Name, (string)null, isIncludedInDefaultSearch, type));
             }
         }
     }
 }
 public IFieldConfiguration Generate(string locale)
 {
     return(ProviderConfiguration.CreateUserField(this.Name, locale, this.IsIncludedInDefaultSearch, this.Type));
 }