diff options
| author | Rob Mensching <rob@firegiant.com> | 2019-10-07 07:32:59 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2019-10-07 11:27:21 -0700 |
| commit | cece10e037c6daacc8d2def1a9057882aec47fe4 (patch) | |
| tree | 8e79c0d5b30ed8e663c077b2d9ce2b829b76ab84 /src/WixToolset.Data/IntermediateFieldValueExtensions.cs | |
| parent | 7462108b714d07161126dcedda5312daef54ae13 (diff) | |
| download | wix-cece10e037c6daacc8d2def1a9057882aec47fe4.tar.gz wix-cece10e037c6daacc8d2def1a9057882aec47fe4.tar.bz2 wix-cece10e037c6daacc8d2def1a9057882aec47fe4.zip | |
Add support for long fields and fix up Bundle and many other tuples
Diffstat (limited to 'src/WixToolset.Data/IntermediateFieldValueExtensions.cs')
| -rw-r--r-- | src/WixToolset.Data/IntermediateFieldValueExtensions.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs index f9322e09..317dfc7f 100644 --- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs | |||
| @@ -45,6 +45,45 @@ namespace WixToolset.Data | |||
| 45 | return (bool)value.Data; | 45 | return (bool)value.Data; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | public static long AsLargeNumber(this IntermediateFieldValue value) | ||
| 49 | { | ||
| 50 | var result = value.AsNullableLargeNumber(); | ||
| 51 | return result ?? 0; | ||
| 52 | } | ||
| 53 | |||
| 54 | public static long? AsNullableLargeNumber(this IntermediateFieldValue value) | ||
| 55 | { | ||
| 56 | if (value?.Data == null) | ||
| 57 | { | ||
| 58 | return null; | ||
| 59 | } | ||
| 60 | else if (value.Data is int n) | ||
| 61 | { | ||
| 62 | return n; | ||
| 63 | } | ||
| 64 | else if (value.Data is long l) | ||
| 65 | { | ||
| 66 | return l; | ||
| 67 | } | ||
| 68 | else if (value.Data is bool b) | ||
| 69 | { | ||
| 70 | return b ? 1 : 0; | ||
| 71 | } | ||
| 72 | else if (value.Data is string s) | ||
| 73 | { | ||
| 74 | try | ||
| 75 | { | ||
| 76 | return Convert.ToInt32(s); | ||
| 77 | } | ||
| 78 | catch (FormatException) | ||
| 79 | { | ||
| 80 | throw new WixException(ErrorMessages.UnableToConvertFieldToNumber(s)); | ||
| 81 | } | ||
| 82 | } | ||
| 83 | |||
| 84 | return (long)value.Data; | ||
| 85 | } | ||
| 86 | |||
| 48 | public static int AsNumber(this IntermediateFieldValue value) | 87 | public static int AsNumber(this IntermediateFieldValue value) |
| 49 | { | 88 | { |
| 50 | var result = value.AsNullableNumber(); | 89 | var result = value.AsNullableNumber(); |
