Was.OrcSearch – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 using System.Collections.Generic;
2 using Was.OrcSearch.Models.Interfaces;
3  
4 namespace Was.OrcSearch.Models.Extensions
5 {
6 public static class IObjectWithMetadataExtensions
7 {
8 public static Dictionary<string, IMetadataValue> ToStaticMetadataDictionary(
9 this IObjectWithMetadata objectWithMetadata)
10 {
11 var dictionary = new Dictionary<string, IMetadataValue>();
12  
13 foreach (var metadata in objectWithMetadata.MetadataCollection)
14 {
15 var value = objectWithMetadata.GetMetadataValue(metadata.Name);
16  
17 var metadataValue = new MetadataValue(metadata);
18  
19 var subObjectWithMetadata = value as IObjectWithMetadata;
20 if (subObjectWithMetadata != null)
21 metadataValue.Value = subObjectWithMetadata.ToStaticMetadataDictionary();
22 else
23 metadataValue.Value = value;
24  
25 dictionary.Add(metadata.Name, metadataValue);
26 }
27  
28 return dictionary;
29 }
30  
31 public static List<IMetadataValue> ToStaticMetadataList(this IObjectWithMetadata objectWithMetadata)
32 {
33 var metadataDictionary = objectWithMetadata.ToStaticMetadataDictionary();
34 return metadataDictionary.ToStaticMetadataList();
35 }
36  
37 public static List<IMetadataValue> ToStaticMetadataList(
38 this Dictionary<string, IMetadataValue> metadataDictionary)
39 {
40 var list = new List<IMetadataValue>();
41  
42 foreach (var metadataKeyValuePair in metadataDictionary)
43 {
44 var value = metadataKeyValuePair.Value;
45  
46 var dictionary = value.Value as Dictionary<string, IMetadataValue>;
47 if (dictionary != null) value.Value = dictionary.ToStaticMetadataList();
48  
49 list.Add(value);
50 }
51  
52 return list;
53 }
54 }
55 }