Was.OrcSearch – Blame information for rev 1
?pathlinks?
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 | } |