IntelliTect / Coalesce

Quickly build amazing web apps
https://intellitect.github.io/Coalesce/
Apache License 2.0
62 stars 22 forks source link

System.OverflowException being thrown on code generation #351

Closed meghanmae closed 8 months ago

meghanmae commented 8 months ago

When running dotnet coalesce I am presented with an overflow exception.

Version: 4.0.0-alpha.20231222.2

Possible origin of the issue, specifically the changes in the ValueViewModel.cs file: https://github.com/IntelliTect/Coalesce/commit/5a902d6a880c2140494ddb003526c6ddb9c4ab0d#diff-621c508bf96a792a3f4f56197bc3399f65d6f3614771225cf09f62fcc6c83eb0

Here is the stack trace

PS C:\git\StormingTheCastle\StormingTheCastle.Web> dotnet coalesce
Starting Coalesce 4.0.0-alpha.20231222.2, running under .NET 8.0.0
https://github.com/IntelliTect/Coalesce

Working in 'C:\git\StormingTheCastle', using 'coalesce.json'
[i:0.135] Loading Projects:
[i:0.158]    C:\git\StormingTheCastle\StormingTheCastle.Data\StormingTheCastle.Data.csproj
[i:0.733]    C:\git\StormingTheCastle\StormingTheCastle.Web\StormingTheCastle.Web.csproj
[i:11.217] Gathering Types
[i:13.490] Analyzing 313 Types
[i:14.246] Starting Generation
[e:15.018] System.OverflowException: Value was either too large or too small for a Decimal.
   at System.Number.ThrowOverflowException(String message)
   at System.Decimal.DecCalc.VarDecFromR8(Double input, DecCalc& result)
   at System.Double.System.IConvertible.ToDecimal(IFormatProvider provider)
   at IntelliTect.Coalesce.TypeDefinition.ValueViewModel.get_IsRequired() in /_/src/IntelliTect.Coalesce/TypeDefinition/ValueViewModel.cs:line 57
   at IntelliTect.Coalesce.TypeDefinition.PropertyViewModel.get_IsRequired() in /_/src/IntelliTect.Coalesce/TypeDefinition/PropertyViewModel.cs:line 300
   at IntelliTect.Coalesce.CodeGeneration.Vue.Generators.TsMetadata.GetValidationRules(ValueViewModel prop, String propName) in /_/src/IntelliTect.Coalesce.CodeGeneration.Vue/Generators/Scripts/TsMetadata.cs:line 385
   at IntelliTect.Coalesce.CodeGeneration.Vue.Generators.TsMetadata.WriteClassPropertyMetadata(TypeScriptCodeBuilder b, ClassViewModel model, PropertyViewModel prop) in /_/src/IntelliTect.Coalesce.CodeGeneration.Vue/Generators/Scripts/TsMetadata.cs:line 340
   at IntelliTect.Coalesce.CodeGeneration.Vue.Generators.TsMetadata.WriteClassPropertiesMetadata(TypeScriptCodeBuilder b, ClassViewModel model) in /_/src/IntelliTect.Coalesce.CodeGeneration.Vue/Generators/Scripts/TsMetadata.cs:line 194
   at IntelliTect.Coalesce.CodeGeneration.Vue.Generators.TsMetadata.WriteApiBackedTypeMetadata(TypeScriptCodeBuilder b, ClassViewModel model) in /_/src/IntelliTect.Coalesce.CodeGeneration.Vue/Generators/Scripts/TsMetadata.cs:line 139
   at IntelliTect.Coalesce.CodeGeneration.Vue.Generators.TsMetadata.BuildOutputAsync() in /_/src/IntelliTect.Coalesce.CodeGeneration.Vue/Generators/Scripts/TsMetadata.cs:line 49
   at IntelliTect.Coalesce.CodeGeneration.Generation.StringBuilderFileGenerator`1.GetOutputAsync() in /_/src/IntelliTect.Coalesce.CodeGeneration/Generation/Generators/StringBuilderFileGenerator.cs:line 25
   at IntelliTect.Coalesce.CodeGeneration.Generation.FileGenerator.GenerateAsync() in /_/src/IntelliTect.Coalesce.CodeGeneration/Generation/Generators/FileGenerator.cs:line 55
   at IntelliTect.Coalesce.CodeGeneration.Generation.CompositeGenerator`1.GenerateAsync() in /_/src/IntelliTect.Coalesce.CodeGeneration/Generation/Generators/CompositeGenerator.cs:line 60
   at IntelliTect.Coalesce.CodeGeneration.Generation.GenerationExecutor.GenerateAsync(Type rootGenerator) in /_/src/IntelliTect.Coalesce.CodeGeneration/Generation/GenerationExecutor.cs:line 138
   at IntelliTect.Coalesce.Cli.Program.OnExecuteAsync(CommandLineApplication app) in /_/src/IntelliTect.Coalesce.DotnetTool/Program.cs:line 107
PS C:\git\StormingTheCastle\StormingTheCastle.Web>