Browse Source

Rename LogParseError to ThrowParseError
Modify ParseDecimal to fall back to double.Parse if decimal.Parse fails.

Andrew Klopper 8 years ago
parent
commit
81cedc06e4
1 changed files with 10 additions and 5 deletions
  1. 10 5
      MAXClient/Client.cs

+ 10 - 5
MAXClient/Client.cs

307
             return catalogue;
307
             return catalogue;
308
         }
308
         }
309
 
309
 
310
-        private bool LogParseError(string value, string valueName, string valueType, string fullResponse)
310
+        private void ThrowParseError(string value, string valueName, string valueType, string fullResponse)
311
         {
311
         {
312
             _logger.LogError(
312
             _logger.LogError(
313
                 "Failed to parse value: valueType={0} valueName={1} value={2} fullResponse={3} {4}",
313
                 "Failed to parse value: valueType={0} valueName={1} value={2} fullResponse={3} {4}",
325
             bool ret;
325
             bool ret;
326
             if (! bool.TryParse(value, out ret))
326
             if (! bool.TryParse(value, out ret))
327
             {
327
             {
328
-                LogParseError(value, valueName, "bool", fullResponse);
328
+                ThrowParseError(value, valueName, "bool", fullResponse);
329
             }
329
             }
330
             return ret;
330
             return ret;
331
         }
331
         }
335
             DateTime ret;
335
             DateTime ret;
336
             if (!DateTime.TryParse(value, out ret))
336
             if (!DateTime.TryParse(value, out ret))
337
             {
337
             {
338
-                LogParseError(value, valueName, "DateTime", fullResponse);
338
+                ThrowParseError(value, valueName, "DateTime", fullResponse);
339
             }
339
             }
340
             return ret;
340
             return ret;
341
         }
341
         }
345
             decimal ret;
345
             decimal ret;
346
             if (!decimal.TryParse(value, out ret))
346
             if (!decimal.TryParse(value, out ret))
347
             {
347
             {
348
-                LogParseError(value, valueName, "decimal", fullResponse);
348
+                double fallback;
349
+                if (!double.TryParse(value, out fallback))
350
+                {
351
+                    ThrowParseError(value, valueName, "decimal", fullResponse);
352
+                }
353
+                return (decimal)fallback;
349
             }
354
             }
350
             return ret;
355
             return ret;
351
         }
356
         }
355
             int ret;
360
             int ret;
356
             if (!int.TryParse(value, out ret))
361
             if (!int.TryParse(value, out ret))
357
             {
362
             {
358
-                LogParseError(value, valueName, "int", fullResponse);
363
+                ThrowParseError(value, valueName, "int", fullResponse);
359
             }
364
             }
360
             return ret;
365
             return ret;
361
         }
366
         }