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));
 }