Was.OrcSearch – Rev 1
?pathlinks?
using System.Collections.Generic;
using Was.OrcSearch.Models.Interfaces;
namespace Was.OrcSearch.Models.Extensions
{
public static class IObjectWithMetadataExtensions
{
public static Dictionary<string, IMetadataValue> ToStaticMetadataDictionary(
this IObjectWithMetadata objectWithMetadata)
{
var dictionary = new Dictionary<string, IMetadataValue>();
foreach (var metadata in objectWithMetadata.MetadataCollection)
{
var value = objectWithMetadata.GetMetadataValue(metadata.Name);
var metadataValue = new MetadataValue(metadata);
var subObjectWithMetadata = value as IObjectWithMetadata;
if (subObjectWithMetadata != null)
metadataValue.Value = subObjectWithMetadata.ToStaticMetadataDictionary();
else
metadataValue.Value = value;
dictionary.Add(metadata.Name, metadataValue);
}
return dictionary;
}
public static List<IMetadataValue> ToStaticMetadataList(this IObjectWithMetadata objectWithMetadata)
{
var metadataDictionary = objectWithMetadata.ToStaticMetadataDictionary();
return metadataDictionary.ToStaticMetadataList();
}
public static List<IMetadataValue> ToStaticMetadataList(
this Dictionary<string, IMetadataValue> metadataDictionary)
{
var list = new List<IMetadataValue>();
foreach (var metadataKeyValuePair in metadataDictionary)
{
var value = metadataKeyValuePair.Value;
var dictionary = value.Value as Dictionary<string, IMetadataValue>;
if (dictionary != null) value.Value = dictionary.ToStaticMetadataList();
list.Add(value);
}
return list;
}
}
}
Generated by GNU Enscript 1.6.5.90.