/// <summary>获得元数据标签集合</summary> private void LoadMetadataTags(bool loadMetadataTagsFromConfig) { var service = GetService <ISearchServiceWrapper>(); service.ResetServiceUrl(); var tags = service.GetMetadataDefinitions(); this.MetadataTags = new MetadataDefinitionCollection(tags); ExtToIndexDataTypeValueProvider.BuildMapper(this.MetadataTags[MetadataConsts.ShowType]); MetadataDefinitionCollection.Instance = this.MetadataTags; if (loadMetadataTagsFromConfig) { var tags2 = tags.ToList(); RemoveMetadataTag(tags2, MetadataConsts.IIId); RemoveMetadataTag(tags2, MetadataConsts.IndexedDate); //RemoveMetadataTag(tags2, MetadataConsts.PageId); RemoveMetadataTag(tags2, MetadataConsts.DataId); LoadMetadataTags(tags2.ToArray()); } }
/// <summary>生成Excel模板数据行</summary> private List <CellProperty> BuildExcelTemplateDataRow(int index, string ptFile, string ext) { var cellData = new List <CellProperty>(); cellData.Add(new CellProperty() { Value = index + 1, Span = 1 }); var encoding = ExtToIndexDataTypeValueProvider.GetEncoding(ext); cellData.Add(new CellProperty() { Value = encoding, Span = 1 }); cellData.Add(new CellProperty() { Value = ptFile, Span = 1 }); var options = ExtToIndexDataTypeValueProvider.GetOptions(ext); cellData.Add(new CellProperty() { Value = options, Span = 1 }); var context = ptFile; foreach (var tag in this.Config.MetadataTags) { var property = new CellProperty() { Span = 1 }; object value = null; if (tag.Variables != null) { value = tag.BuildVariablesValue(context); } else if (tag.DefaultValue.Length > 0) { value = tag.DefaultValue; } var tagType = MetadataTagType.String; if (!tag.Refer.Type.IsNullOrEmpty()) { tagType = tag.Refer.Type.ToEnum <MetadataTagType>(); } switch (tagType) { case MetadataTagType.Date: case MetadataTagType.ISODate: property.ValueType = typeof(DateTime); if (value != null) { var dtValue = value.ToString().TryParseStandardString().GetValueOrDefault(DateTime.MinValue); if (dtValue != DateTime.MinValue) { value = dtValue; } } break; case MetadataTagType.Number: property.ValueType = typeof(double); if (value != null) { value = double.Parse(value.ToString()); } break; default: if (value == null) { value = string.Empty; } break; } property.Value = value; cellData.Add(property); } return(cellData); }