wasDAVClient – Diff between revs 1 and 3
?pathlinks?
Rev 1 | Rev 3 | |||
---|---|---|---|---|
Line 7... | Line 7... | |||
7 | using wasDAVClient.Model; |
7 | using wasDAVClient.Model; |
|
Line 8... | Line 8... | |||
8 | |
8 | |
|
9 | namespace wasDAVClient.Helpers |
9 | namespace wasDAVClient.Helpers |
|
10 | { |
10 | { |
|
11 | /// <summary> |
11 | /// <summary> |
|
12 | /// Represents the parser for response's results. |
12 | /// Represents the parser for response's results. |
|
13 | /// </summary> |
13 | /// </summary> |
|
14 | internal static class ResponseParser |
14 | internal static class ResponseParser |
|
- | 15 | { |
||
- | 16 | internal static XmlReaderSettings XmlReaderSettings = new XmlReaderSettings |
||
- | 17 | { |
||
- | 18 | IgnoreComments = true, |
||
- | 19 | IgnoreProcessingInstructions = true, |
||
- | 20 | IgnoreWhitespace = true |
||
- | 21 | }; |
||
15 | { |
22 | |
|
16 | /// <summary> |
23 | /// <summary> |
|
17 | /// Parses the disk item. |
24 | /// Parses the disk item. |
|
18 | /// </summary> |
25 | /// </summary> |
|
19 | /// <param name="stream">The response text.</param> |
26 | /// <param name="stream">The response text.</param> |
|
20 | /// <returns>The parsed item.</returns> |
27 | /// <returns>The parsed item.</returns> |
|
21 | public static Item ParseItem(Stream stream) |
28 | public static Item ParseItem(Stream stream) |
|
22 | { |
29 | { |
|
23 | return ParseItems(stream).FirstOrDefault(); |
30 | return ParseItems(stream).FirstOrDefault(); |
|
Line 24... | Line -... | |||
24 | } |
- | ||
25 | |
- | ||
26 | internal static XmlReaderSettings XmlReaderSettings = new XmlReaderSettings |
- | ||
27 | { |
- | ||
28 | IgnoreComments = true, |
- | ||
29 | IgnoreProcessingInstructions = true, |
- | ||
30 | IgnoreWhitespace = true |
- | ||
31 | }; |
31 | } |
|
32 | |
32 | |
|
33 | /// <summary> |
33 | /// <summary> |
|
34 | /// Parses the disk items. |
34 | /// Parses the disk items. |
|
35 | /// </summary> |
35 | /// </summary> |
|
36 | /// <param name="stream">The response text.</param> |
36 | /// <param name="stream">The response text.</param> |
|
37 | /// <returns>The list of parsed items.</returns> |
37 | /// <returns>The list of parsed items.</returns> |
|
38 | public static IEnumerable<Item> ParseItems(Stream stream) |
38 | public static IEnumerable<Item> ParseItems(Stream stream) |
|
39 | { |
39 | { |
|
40 | var items = new List<Item>(); |
40 | var items = new List<Item>(); |
|
41 | using (var reader = XmlReader.Create(stream, XmlReaderSettings)) |
- | ||
42 | { |
41 | using (var reader = XmlReader.Create(stream, XmlReaderSettings)) |
|
43 | |
42 | { |
|
44 | Item itemInfo = null; |
43 | Item itemInfo = null; |
|
45 | while (reader.Read()) |
44 | while (reader.Read()) |
|
46 | { |
45 | { |
|
Line 123... | Line 122... | |||
123 | case "resourcetype": |
122 | case "resourcetype": |
|
124 | if (!reader.IsEmptyElement) |
123 | if (!reader.IsEmptyElement) |
|
125 | { |
124 | { |
|
126 | reader.Read(); |
125 | reader.Read(); |
|
127 | var resourceType = reader.LocalName.ToLower(); |
126 | var resourceType = reader.LocalName.ToLower(); |
|
- | 127 | if (string.Equals(resourceType, "collection", |
||
128 | if (string.Equals(resourceType, "collection", StringComparison.InvariantCultureIgnoreCase)) |
128 | StringComparison.InvariantCultureIgnoreCase)) |
|
129 | itemInfo.IsCollection = true; |
129 | itemInfo.IsCollection = true; |
|
130 | } |
130 | } |
|
131 | break; |
131 | break; |
|
132 | case "hidden": |
132 | case "hidden": |
|
133 | case "ishidden": |
133 | case "ishidden": |
|
Line 136... | Line 136... | |||
136 | case "checked-in": |
136 | case "checked-in": |
|
137 | case "version-controlled-configuration": |
137 | case "version-controlled-configuration": |
|
138 | reader.Skip(); |
138 | reader.Skip(); |
|
139 | break; |
139 | break; |
|
140 | default: |
140 | default: |
|
141 | { |
141 | { |
|
142 | int a = 0; |
142 | var a = 0; |
|
143 | break; |
143 | break; |
|
144 | } |
144 | } |
|
145 | } |
145 | } |
|
146 | } |
146 | } |
|
147 | else if (reader.NodeType == XmlNodeType.EndElement && reader.LocalName.ToLower() == "response") |
147 | else if (reader.NodeType == XmlNodeType.EndElement && reader.LocalName.ToLower() == "response") |
|
148 | { |
148 | { |
|
149 | // Remove trailing / if the item is not a collection |
149 | // Remove trailing / if the item is not a collection |
|
Line 162... | Line 162... | |||
162 | } |
162 | } |
|
163 | } |
163 | } |
|
Line 164... | Line 164... | |||
164 | |
164 | |
|
165 | return items; |
165 | return items; |
|
166 | } |
- | ||
167 | |
- | ||
168 | |
166 | } |
|
169 | } |
167 | } |
|
170 | } |
168 | } |