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 |
