diff options
Diffstat (limited to 'src/WixToolset.Data/IntermediateFieldValueExtensions.cs')
| -rw-r--r-- | src/WixToolset.Data/IntermediateFieldValueExtensions.cs | 58 |
1 files changed, 29 insertions, 29 deletions
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; |
