diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Data/IntermediateFieldValue.cs | 4 | ||||
-rw-r--r-- | src/WixToolset.Data/IntermediateFieldValueExtensions.cs | 58 | ||||
-rw-r--r-- | src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs | 4 |
3 files changed, 33 insertions, 33 deletions
diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs index 9a6b6ef5..84a23931 100644 --- a/src/WixToolset.Data/IntermediateFieldValue.cs +++ b/src/WixToolset.Data/IntermediateFieldValue.cs | |||
@@ -17,11 +17,11 @@ namespace WixToolset.Data | |||
17 | 17 | ||
18 | public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); | 18 | public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); |
19 | 19 | ||
20 | public static explicit operator bool? (IntermediateFieldValue value) => value.AsNullableBool(); | 20 | public static explicit operator bool?(IntermediateFieldValue value) => value.AsNullableBool(); |
21 | 21 | ||
22 | public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); | 22 | public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); |
23 | 23 | ||
24 | public static explicit operator int? (IntermediateFieldValue value) => value.AsNullableNumber(); | 24 | public static explicit operator int?(IntermediateFieldValue value) => value.AsNullableNumber(); |
25 | 25 | ||
26 | public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); | 26 | public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); |
27 | 27 | ||
diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index 317dfc7f..8ff923a7 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs | |||
@@ -8,17 +8,7 @@ namespace WixToolset.Data | |||
8 | { | 8 | { |
9 | public static bool AsBool(this IntermediateFieldValue value) | 9 | public static bool AsBool(this IntermediateFieldValue value) |
10 | { | 10 | { |
11 | var result = value.AsNullableBool(); | 11 | if (value.Data is bool b) |
12 | return result.HasValue && result.Value; | ||
13 | } | ||
14 | |||
15 | public static bool? AsNullableBool(this IntermediateFieldValue value) | ||
16 | { | ||
17 | if (value?.Data == null) | ||
18 | { | ||
19 | return null; | ||
20 | } | ||
21 | else if (value.Data is bool b) | ||
22 | { | 12 | { |
23 | return b; | 13 | return b; |
24 | } | 14 | } |
@@ -45,26 +35,26 @@ namespace WixToolset.Data | |||
45 | return (bool)value.Data; | 35 | return (bool)value.Data; |
46 | } | 36 | } |
47 | 37 | ||
48 | public static long AsLargeNumber(this IntermediateFieldValue value) | 38 | public static bool? AsNullableBool(this IntermediateFieldValue value) |
49 | { | 39 | { |
50 | var result = value.AsNullableLargeNumber(); | 40 | if (value?.Data == null) |
51 | return result ?? 0; | 41 | { |
42 | return null; | ||
43 | } | ||
44 | |||
45 | return value.AsBool(); | ||
52 | } | 46 | } |
53 | 47 | ||
54 | public static long? AsNullableLargeNumber(this IntermediateFieldValue value) | 48 | public static long AsLargeNumber(this IntermediateFieldValue value) |
55 | { | 49 | { |
56 | if (value?.Data == null) | 50 | if (value.Data is long l) |
57 | { | 51 | { |
58 | return null; | 52 | return l; |
59 | } | 53 | } |
60 | else if (value.Data is int n) | 54 | else if (value.Data is int n) |
61 | { | 55 | { |
62 | return n; | 56 | return n; |
63 | } | 57 | } |
64 | else if (value.Data is long l) | ||
65 | { | ||
66 | return l; | ||
67 | } | ||
68 | else if (value.Data is bool b) | 58 | else if (value.Data is bool b) |
69 | { | 59 | { |
70 | return b ? 1 : 0; | 60 | return b ? 1 : 0; |
@@ -84,19 +74,19 @@ namespace WixToolset.Data | |||
84 | return (long)value.Data; | 74 | return (long)value.Data; |
85 | } | 75 | } |
86 | 76 | ||
87 | public static int AsNumber(this IntermediateFieldValue value) | 77 | public static long? AsNullableLargeNumber(this IntermediateFieldValue value) |
88 | { | ||
89 | var result = value.AsNullableNumber(); | ||
90 | return result ?? 0; | ||
91 | } | ||
92 | |||
93 | public static int? AsNullableNumber(this IntermediateFieldValue value) | ||
94 | { | 78 | { |
95 | if (value?.Data == null) | 79 | if (value?.Data == null) |
96 | { | 80 | { |
97 | return null; | 81 | return null; |
98 | } | 82 | } |
99 | else if (value.Data is int n) | 83 | |
84 | return value.AsLargeNumber(); | ||
85 | } | ||
86 | |||
87 | public static int AsNumber(this IntermediateFieldValue value) | ||
88 | { | ||
89 | if (value.Data is int n) | ||
100 | { | 90 | { |
101 | return n; | 91 | return n; |
102 | } | 92 | } |
@@ -123,6 +113,16 @@ namespace WixToolset.Data | |||
123 | return (int)value.Data; | 113 | return (int)value.Data; |
124 | } | 114 | } |
125 | 115 | ||
116 | public static int? AsNullableNumber(this IntermediateFieldValue value) | ||
117 | { | ||
118 | if (value?.Data == null) | ||
119 | { | ||
120 | return null; | ||
121 | } | ||
122 | |||
123 | return value.AsNumber(); | ||
124 | } | ||
125 | |||
126 | public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) | 126 | public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) |
127 | { | 127 | { |
128 | return (IntermediateFieldPathValue)value?.Data; | 128 | return (IntermediateFieldPathValue)value?.Data; |
diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs index 1091b715..3070ba04 100644 --- a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs +++ b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs | |||
@@ -28,7 +28,7 @@ namespace WixToolset.Data.Symbols | |||
28 | PrimaryKeys, | 28 | PrimaryKeys, |
29 | } | 29 | } |
30 | 30 | ||
31 | [DebuggerDisplay("{SymbolicName}")] | 31 | [DebuggerDisplay("{SymbolicName,nq}")] |
32 | public class WixSimpleReferenceSymbol : IntermediateSymbol | 32 | public class WixSimpleReferenceSymbol : IntermediateSymbol |
33 | { | 33 | { |
34 | public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) | 34 | public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) |
@@ -57,6 +57,6 @@ namespace WixToolset.Data.Symbols | |||
57 | /// Gets the symbolic name. | 57 | /// Gets the symbolic name. |
58 | /// </summary> | 58 | /// </summary> |
59 | /// <value>Symbolic name.</value> | 59 | /// <value>Symbolic name.</value> |
60 | public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); | 60 | public string SymbolicName => String.Concat("Ref ", this.Table, ":", this.PrimaryKeys); |
61 | } | 61 | } |
62 | } \ No newline at end of file | 62 | } \ No newline at end of file |