Пример #1
0
        /// <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());
            }
        }
Пример #2
0
        /// <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);
        }