├── .editorconfig
├── .github
└── workflows
│ └── dotnetRelease.yml
├── .gitignore
├── BuildRelease.ps1
├── CONTRIBUTING.md
├── CreateDebugWebClientApi.ps1
├── CreateDemoCoreWebClientApi.ps1
├── CreateDemoGodAssemblyWebClientApi.ps1
├── CreateDemoTextJsonWebClientApi.ps1
├── DemoCoreWeb.ClientApi
├── DemoCoreWeb.ClientApi.csproj
└── WebApiClientAuto.cs
├── DemoCoreWeb.ClientApiTextJson
├── DemoCoreWeb.ClientApiTextJson.csproj
├── README.md
└── WebApiClientTextJsonAuto.cs
├── DemoCoreWeb
├── .config
│ └── dotnet-tools.json
├── CodeGen.json
├── CodeGenDebug.json
├── CodeGenSchema.json
├── DemoApps.globalconfig
├── DemoCoreWeb.csproj
├── Program.cs
├── Properties
│ ├── PublishProfiles
│ │ └── FolderProfile.pubxml
│ └── launchSettings.json
├── README.md
├── Scripts
│ ├── ClientApi
│ │ ├── HttpClient.js
│ │ ├── HttpClient.ts
│ │ ├── WebApiCoreJQClientAuto.js
│ │ └── WebApiCoreJQClientAuto.ts
│ ├── tests
│ │ ├── demo.tests.js
│ │ ├── demo.tests.ts
│ │ ├── special.tests.js
│ │ └── special.tests.ts
│ └── typings
│ │ ├── jquery
│ │ └── jquery.d.ts
│ │ └── qunit
│ │ └── qunit.d.ts
├── Startup.cs
├── appsettings.Development.json
├── appsettings.json
├── tsconfig.json
├── web.config
└── wwwroot
│ └── tests.html
├── DemoCoreWebControllers
├── Controllers
│ ├── CodeGenController.cs
│ ├── DateTypesController.cs
│ ├── EntitiesController.cs
│ ├── FileUploadController.cs
│ ├── HeroesController.cs
│ ├── HomeController.cs
│ ├── NumbersController.cs
│ ├── SpecialTypesController.cs
│ ├── StringDataController.cs
│ ├── SuperDemoController.cs
│ ├── TextDataController.cs
│ ├── TupleController.cs
│ └── ValuesController.cs
├── DemoCoreWebControllers.csproj
└── Helpers
│ └── ErrorHandlingMiddleware.cs
├── DemoGodAssemblyWeb
├── CodeGen.json
├── Controllers
│ ├── CodeGenController.cs
│ ├── DateTypesController.cs
│ ├── EntitiesController.cs
│ ├── FileUploadController.cs
│ ├── HeroesController.cs
│ ├── HomeController.cs
│ ├── NumbersController.cs
│ ├── SpecialTypesController.cs
│ ├── StringDataController.cs
│ ├── SuperDemoController.cs
│ ├── TextDataController.cs
│ ├── TupleController.cs
│ └── ValuesController.cs
├── DemoGodAssemblyWeb.csproj
├── DemoGodAssemblyWeb.http
├── Helpers
│ └── ErrorHandlingMiddleware.cs
├── Models
│ ├── AccountBindingModels.cs
│ ├── AccountViewModels.cs
│ └── Entities.cs
├── Program.cs
├── Properties
│ └── launchSettings.json
├── README.md
├── appsettings.Development.json
└── appsettings.json
├── DemoTextJsonWeb
├── CodeGen.json
├── CodeGenSchema.json
├── DemoTextJsonWeb.csproj
├── DemoTextJsonWeb.http
├── Program.cs
├── Properties
│ └── launchSettings.json
├── README.md
├── appsettings.Development.json
├── appsettings.json
└── web.config
├── DemoWebApi.DemoDataCore
├── AccountBindingModels.cs
├── AccountViewModels.cs
├── DemoWebApi.DemoDataCore.csproj
├── Entities.cs
└── WeatherForecast.cs
├── DemoWebApiDemoDataEx
├── DemoWebApiDemoDataEx.csproj
└── ExtendedModels.cs
├── Doc
├── Articles
│ ├── ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject.html
│ ├── ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files
│ │ ├── 6839
│ │ ├── 10278762043895042862
│ │ ├── 15993272203953158972
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── AGSKWxVYyHBdFb43zZd7YyTTxEgjYnjGoUesb9twhPhyHaQewlJUAUw8wF_-whf6NGnFNRPcR8H1rmDNuXdGL3GYLcztB6AkXdBRbWs4jwhFejTcYX9rGDqiXxh-G4v
│ │ ├── AGSKWxVbTWv4usV5h3CsRgNYyGC2Mzjt9Bg83Mu6Hu6cZyL0AlsmhEK5D6I22EZL7UrR8v__iSiBeBZAhPfXpkk96r6V998qns1jIT2QgMtS8XSElkoL63xT2AHux81
│ │ ├── AGSKWxX5RZSz4IIubQb0Xvmc64n7CnS_z9xHrM7uXUdPeBtnAjhByhQscoxY-Smpk0V2j0qVz9ZDygY1WRmJBTNNqymkGwmbBP9Rbwft74YD6GDXWq1YrlMqofSD4Re
│ │ ├── aframe.html
│ │ ├── emptyStarIcon.png
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── l(1)
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject.html
│ ├── DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files
│ │ ├── 6839
│ │ ├── 10278762043895042862
│ │ ├── 10940427547918388834
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── AGSKWxUWVmxR04xX4819675hbycv9qBCeEdYKfC2CgRw0XfB5d7FN5bpbqA1KF4KwSAHYWiDPU2nHYobOYddRVlc85cyG3uDZ0wINh1O7dOzJHCQpKZoPjdfEQ16IgWOVQ6vj9czPtZf7Q==
│ │ ├── AGSKWxUwm6H2ANpCOgdr59ZfWY9IQdECdOUzA7UD3b8FKalj_WoHRqx2ebju8qyU0aHcOktSZJKhgtWv4AUQOLU4Vb2sv_AaDawcbz-GKjiPAFx-7J-SuRvulUI2ctWiCyiRFGy0dXYDyA==
│ │ ├── AGSKWxXUAfc82lEJYus9gUlfge-vBmIz0QPLfYDF_o3hSdybgrADpgxJVvBHIsvm43W0VcMyVvXdoyQusfMGBYlq9WrUYXg1AmWpWM2t9gruJ6vy6LXaf6aTP-t9I4lwnq2mLMcUYiy1IQ==
│ │ ├── aframe.html
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── Generate C# Client API for ASP.NET Core Web API - CodeProject.html
│ ├── Generate C# Client API for ASP.NET Core Web API - CodeProject_files
│ │ ├── 6839
│ │ ├── 10278762043895042862
│ │ ├── 10619241673506865619
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── AGSKWxUQl2XlFrJtynmVUl84MQQEhEx2g7j4e-o7DnTtnXsITNQts1kxV_Mbc-_hjzhIu86MxM_XbH0HEStIPjLcL-_-FmHsUjqwJ5adXKaAZiL1GwV24gIgCo-tyPOv2sql0r5JC
│ │ ├── AGSKWxWpq-CMWpcIfsMXp4XKS7gEGn0YJY-HCZ0F8kJpJm-b2GjnG7W6cATj-esBPMTvRVG5uvpITZVgjtthvaDgLviWGRWTF5t0P8VglQJEn2oiAZeyZo9-6dhphzne5ARaVm1ok
│ │ ├── AGSKWxXsnDPaNTMBmc-kUkot_KGEoT9Fj0pmNypGBsppDREsqYCXcyzOQyiw4XsayzLi_sPob_bq_Ea_apiDp_gMYXWEhHqSMfuq2plEwS83QTyDf8rvBwsoh5NgGpikINtL9Cotw
│ │ ├── aframe.html
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── l(1)
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── Generate C# Client API for ASP.NET Web API - CodeProject.html
│ ├── Generate C# Client API for ASP.NET Web API - CodeProject_files
│ │ ├── 6839
│ │ ├── 12555067034053073112
│ │ ├── 3139474159076857370
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── 869-095b567be01917e3.js.download
│ │ ├── AGSKWxUowaokfD6nj4zoH9wWgElQphK6Q1n414_myWSNNUX87AKq4amzNCmCadvpZkPjP94G_CBHN_DIgFtPm2iWK6hAhrknRaMgE94RSmhSNEnqWHWd9w-2A83BGmpOaOaULTl0FGZcgA
│ │ ├── AGSKWxVG8HlVhtUWUWd_k-dgAWvB9Ntm7LiKjvBunikiYMBUyFMXmIZJJtN_TlVoAZAerBkRff0iiGFarclMFy4uuAUm2NZSGXseUBHUBN9D34qVgyutQwnC6wdUKxsHQwPipSBYZQDzog
│ │ ├── AGSKWxWxI6KAQx8Jp0Nb-uX4sSauQNaU4DV1DhvB5CyaRmSimCB0NKsGN7-nnLRxiL7mtcCmhk2uXWF_7oaDOauoC_OAL93rTomimwLJ0NeUE9XYA1J17niF_r2O-qK5I2lUkzf4jzxi8Q
│ │ ├── aframe.html
│ │ ├── emptyStarIcon.png
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── layout-12dfdcc6fc1e5fcf.js.download
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── page-ade9d0789736a960.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── Generate TypeScript Client API for ASP.NET Web API- CodeProject.html
│ ├── Generate TypeScript Client API for ASP.NET Web API- CodeProject_files
│ │ ├── 1.png
│ │ ├── Article.min.css
│ │ ├── analytics.js.download
│ │ ├── article.min.js.download
│ │ ├── jquery-3.4.1.min.js.download
│ │ ├── js
│ │ ├── logo250x135.gif
│ │ ├── print48.png
│ │ ├── star-empty-lg.png
│ │ ├── star-fill-lg.png
│ │ ├── t.gif
│ │ └── views32.png
│ ├── Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject.html
│ ├── Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files
│ │ ├── 6839
│ │ ├── 3139474159076857370
│ │ ├── 4159795166271768970
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── 869-095b567be01917e3.js.download
│ │ ├── AGSKWxUOW2SPxFF9PZajoqkwIH2VVpVj7mvPQ85CfxnCkEEnMP9IB3IU1QQpaRtWkznzptUZXLgyk3My0egtaz-xQBi7LAOL6EXdDhnm8n5d
│ │ ├── AGSKWxUdEqHGhlZ-Od-kgVg4ZhmuJaciRpf17--ZV8LLh1vYVNOM9Pp-fud56DHOdaE_IAwVhhFBqW8sihtx2jKl5nC9Bk62nlO5mOvb_DPz
│ │ ├── AGSKWxW68qBLOITJOaZDDxHHpqFLvuL-PNk6YZqzbfhtl4bif9ZvwJGXQ6z8uWgTQSRDrs9Qq7t-luVmth2o4N1A1TzJn87vsVnv5MJv66Ez
│ │ ├── aframe.html
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── l(1)
│ │ ├── layout-12dfdcc6fc1e5fcf.js.download
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── page-ade9d0789736a960.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject.html
│ ├── Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files
│ │ ├── 6839
│ │ ├── 10940427547918388834
│ │ ├── 3139474159076857370
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── AGSKWxU2g9pd_ALmQ5TgyssrFpmhu_TJ0pgkXR5zr7_00desd-pKtNaopDMyQ98AAW6DI6pvD6D6JZA1QZGwOD3-gq77zc
│ │ ├── AGSKWxVa7qz5Os4AlL5kkTvcmfEnN0jgyrUj7UYCIiMIxqm9Zg6S2O8UDowMMWzGFrOetWyzBra8jmzqpeS2Vm7kY9UO3p
│ │ ├── AGSKWxVc52zxE1xfmsojrq6RNs2iUxsSJlzvuRx_q6bKZL0WgHnGzBzivCdKzfcL19u91ZhuaxDLCZQPIg7X3tRZh2eGss
│ │ ├── aframe.html
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
│ ├── Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject.html
│ └── Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files
│ │ ├── 6839
│ │ ├── 12987517371217392749
│ │ ├── 4bd1b696-4098621b6d81f3cf.js.download
│ │ ├── 6528562391515211296
│ │ ├── 684-7067fe44ff85ebe6.js.download
│ │ ├── AGSKWxUp4uGtdDIRfsaoHFdfPn2nVFrSU8iuWA0hKfa8KGAKGZHg81z3fz8KnUkufga_nGT8LA3Y8mBmysW0xucOeyAFE3DwvLo9QgUp8CzWY_gUVjtrIvit3zbK2oT49SfTpRV
│ │ ├── AGSKWxW-bu37jL25sQAe_DvfP6b2hYZRhIJZPw4APliYU-nRTLFqBR6SRG-YP9xr9dEDDeM7GkjEmPzNBgYD3sdW1R4hSZf7xh7KVQUymZLq49zB1GOkK2dytJKVPiWHMTMfWbp
│ │ ├── AGSKWxXVX0q4Biy0qKSfQ7oMsHSZoCIhFCrOpPMlCMq1WGx4iNX_L5dJ3lZHcJIS0kmaJAjQ8vofFh59URPTDhxScUhnJvtuHF8I-Q7HiwssMCMhGgDovS3cUKMATJCMKi49LMK
│ │ ├── aframe.html
│ │ ├── f(1).txt
│ │ ├── f(2).txt
│ │ ├── f(3).txt
│ │ ├── f(4).txt
│ │ ├── f.txt
│ │ ├── f00fbee724adea66.css
│ │ ├── js
│ │ ├── l
│ │ ├── l(1)
│ │ ├── logo250x135.gif
│ │ ├── main-app-f38f0d9153b95312.js.download
│ │ ├── polyfills-42372ed130431b0a.js.download
│ │ ├── reach_worklet(1).html
│ │ ├── reach_worklet.html
│ │ ├── saved_resource(1).html
│ │ ├── saved_resource(2).html
│ │ ├── saved_resource(3).html
│ │ ├── saved_resource(4).html
│ │ ├── saved_resource(5).html
│ │ ├── saved_resource(6).html
│ │ ├── saved_resource.html
│ │ ├── sodar
│ │ ├── starIcon.png
│ │ ├── topics_frame.html
│ │ ├── viewsIcon.png
│ │ └── webpack-5ed466aeca77ac7a.js.download
├── WebApiClientGen.vpp
├── icons
│ ├── TypeScriptCodeDOM.svg
│ ├── TypeScriptCodeDOM128.png
│ ├── TypeScriptCodeDOM256.png
│ └── TypeScriptCodeDOM64.png
└── images
│ ├── Poco2TsTests.png
│ ├── Settings.png
│ ├── TS2531Warning.jpg
│ ├── WebApiClientGen.Abstract.png
│ ├── WebApiClientGen.Poco2Ts.png
│ ├── WebApiClientGen.png
│ ├── WebApiClientGenCore.png
│ ├── WebApiClientGenTests.png
│ └── ngTests.png
├── DotNetPack.ps1
├── Fonlow.Auth.PayloadConverters
├── Fonlow.Auth.PayloadConverters.csproj
├── Models.cs
├── TokenRequestConverter.cs
└── TokenResponseConverter.cs
├── Fonlow.DateOnlyExtensions
├── DateOnlyJsonConverter.cs
├── Fonlow.DateOnlyExtensions.csproj
└── README.md
├── Fonlow.DateOnlyExtensionsNet
├── DateOnlyJsonConverter.cs
├── DateTimeJsonConverters.cs
├── DateTimeOffsetJsonConverters.cs
├── Fonlow.DateOnlyExtensionsTextJson.csproj
└── README.md
├── Fonlow.DocCommentCore
├── DocCommentHelper.cs
├── DocCommentLookup.cs
├── Fonlow.DocCommentCore.csproj
├── README.md
├── StringFunctions.cs
├── XmlDocComment.cs
└── XmlDocComment.xsd
├── Fonlow.IntegralExtension
├── BigIntegerJsonConverter.cs
├── Fonlow.IntegralExtensions.csproj
├── Int64JsonConverter.cs
├── README.md
└── UInt64JsonConverter.cs
├── Fonlow.IntegralExtensionsTextJson
├── BigIntegerJsonConverter.cs
├── Fonlow.IntegralExtensionsTextJson.csproj
├── Int128JsonConverter.cs
├── Int64JsonConverter.cs
├── README.md
├── UInt128JsonConverter.cs
└── UInt64JsonConverter.cs
├── Fonlow.Poco2TsCore
├── AnnotationCommentGenerator.cs
├── AnnotationDeclarationGenerator.cs
├── CherryPicking.cs
├── CherryPickingMethods.cs
├── CodeNamespaceCollectionExtensions.cs
├── CodeNamespaceEx.cs
├── CommentsHelper.cs
├── DotNetTypeCommentGenerator.cs
├── Fonlow.Poco2TsCore.csproj
├── GlobalSuppressions.cs
├── IPoco2Client.cs
├── Poco2TsGen.cs
├── PocoAssemblyFileWalker.cs
├── PocoToTsResponseGen.cs
├── PodGenHelper.cs
├── README.md
└── TypeHelper.cs
├── Fonlow.TypeScriptCodeDomCore
├── CodeObjectHelper.cs
├── CodeSnipetTypeReference.cs
├── Consts.cs
├── FieldTypeInfo.cs
├── Fonlow.TypeScriptCodeDomCore.csproj
├── GlobalSuppressions.cs
├── KeywordHandler.cs
├── StringExtensions.cs
├── TsCodeGenerationOptions.cs
├── TsCodeGenerator.cs
├── TsTypeInfo.cs
├── TypeMapper.cs
├── TypeScriptCodeDOM64.png
├── TypeScriptCodeProvider.cs
└── _Readme.md
├── HeroesDemo
├── .browserslist
├── .editorconfig
├── .gitignore
├── .vscode
│ ├── extensions.json
│ ├── launch.json
│ └── tasks.json
├── HeroesDemo.esproj_
├── README.md
├── angular.json
├── buildDev.ps1
├── buildProd.ps1
├── e2e
│ ├── protractor.conf.js
│ ├── src
│ │ ├── app.e2e-spec.ts
│ │ └── app.po.ts
│ └── tsconfig.json
├── jest.config.js
├── karma.conf.js
├── nuget.config
├── package-lock.json
├── package.json
├── runtest.ps1
├── setup-jest.ts
├── src
│ ├── app
│ │ ├── app-routing.module.ts
│ │ ├── app.component.css
│ │ ├── app.component.html
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ ├── dashboard
│ │ │ ├── dashboard.component.css
│ │ │ ├── dashboard.component.html
│ │ │ └── dashboard.component.ts
│ │ ├── hero-detail
│ │ │ ├── hero-detail.component.html
│ │ │ └── hero-detail.component.ts
│ │ ├── hero-search
│ │ │ ├── hero-search.component.css
│ │ │ ├── hero-search.component.html
│ │ │ └── hero-search.component.ts
│ │ ├── heroes
│ │ │ ├── heroes.component.css
│ │ │ ├── heroes.component.html
│ │ │ └── heroes.component.ts
│ │ ├── message.service.ts
│ │ ├── messages
│ │ │ ├── messages.component.css
│ │ │ ├── messages.component.html
│ │ │ └── messages.component.ts
│ │ └── ngmd.module.ts
│ ├── assets
│ │ └── themes
│ │ │ ├── azure-blue.css
│ │ │ ├── cyan-orange.css
│ │ │ ├── deeppurple-amber.css
│ │ │ ├── indigo-pink.css
│ │ │ ├── magenta-violet.css
│ │ │ ├── pink-bluegrey.css
│ │ │ ├── purple-green.css
│ │ │ ├── rose-red.css
│ │ │ └── theme.css
│ ├── clientapi
│ │ ├── WebApiCoreNG2FormGroupClientAuto.ts
│ │ ├── WebApiCoreNg2ClientAuto.ts
│ │ └── WebApiNG2ClientAuto.spec.ts
│ ├── conf
│ │ ├── siteconfig.js
│ │ └── siteconfigProd.js
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ └── styles.css
├── startDev.ps1
├── startProd.ps1
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.spec.json
└── web-test-runner.config.mjs
├── Poco2TsCore
├── Poco2TsCore.csproj
├── Program.cs
├── Properties
│ └── launchSettings.json
└── README.md
├── README.md
├── SettingsExplained.md
├── SolutionInfo.cs
├── StartDemoCoreWeb.ps1
├── StartDemoTextJsonWeb.ps1
├── StartGodAssembly.ps1
├── TestReleaseAll.ps1
├── Tests
├── DateOnlyExtensionsTextJsonTests
│ ├── AuthModelsConvertersTests.cs
│ ├── ConverterFacts.cs
│ └── DateOnlyExtensionsTextJsonTests.csproj
├── IntegrationTestShared
│ ├── DateTypesIntegration.cs
│ ├── DotNetCoreSpecial.cs
│ ├── DotNetHostCollection.cs
│ ├── EntitiesApiIntegration.cs
│ ├── FileUploadIntegration.cs
│ ├── HeroesApiIntegration.cs
│ ├── IntegrationTestShared.projitems
│ ├── IntegrationTestShared.shproj
│ ├── NumbersApiIntegration.cs
│ ├── StringDataApiIntegration.cs
│ ├── StringDataFixture.cs
│ ├── SuperDemoIntegration.cs
│ ├── TextDataApiIntegrationy.cs
│ ├── TextDataFixture.cs
│ ├── TupleApiIntegration.cs
│ ├── ValuesApiIntegration.cs
│ └── ValuesFixture.cs
├── IntegrationTestsCore
│ ├── DateTypesFixture.cs
│ ├── EntitiesFixture.cs
│ ├── HeroesFixture.cs
│ ├── IntegrationTestsCore.csproj
│ ├── NumbersFixture.cs
│ ├── README.md
│ ├── SpecialTypesApiIntegration.cs
│ ├── SpecialTypesFixture.cs
│ ├── SuperDemoFixture.cs
│ ├── TupleFixture.cs
│ └── appsettings.json
├── IntegrationTestsNF
│ ├── App.config
│ ├── DateTypesIntegration.cs
│ ├── EntitiesApiIntegration.cs
│ ├── IntegrationTestsNf.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReadMe.MD
│ ├── SuperDemoIntegration.cs
│ └── packages.config
├── IntegrationTestsTextJson
│ ├── BigIntConverter.cs
│ ├── DateTypesFixture.cs
│ ├── EntitiesFixture.cs
│ ├── HeroesFixture.cs
│ ├── IntegrationTestsTextJson.csproj
│ ├── NumbersFixture.cs
│ ├── PolymorphismApiIntegration.cs
│ ├── PolymorphismFixture.cs
│ ├── README.md
│ ├── SpecialTypesApiIntegration.cs
│ ├── SpecialTypesFixture.cs
│ ├── SuperDemoFixture.cs
│ ├── TextJsonNegativeCases.cs
│ ├── TupleFixture.cs
│ └── appsettings.json
├── Poco2NgFormTests
│ ├── GlobalUsings.cs
│ ├── Poco2NgFormTests.csproj
│ └── TsOutput.cs
├── Poco2TsTestsCore
│ ├── DemoCoreWebControllers.xml
│ ├── DocCommentTests.cs
│ ├── FooTypes.cs
│ ├── Misc.cs
│ ├── NewtonsoftCherryPickingFacts.cs
│ ├── Poco2TsHouseKeeping.cs
│ ├── Poco2TsTestsCore.csproj
│ ├── StringFunctionsTests.cs
│ ├── TestCodeDom.cs
│ ├── TextJsonCherryPickingFacts.cs
│ ├── TsOutputDataContract.cs
│ ├── TsOutputWithAspNet.cs
│ ├── TsOutputWithNetCore.cs
│ ├── TsOutputWithNewtonSoftJson.cs
│ └── TypeHelperTests.cs
├── README.md
├── Tests.globalconfig
├── TypeScriptCodeDomTestsCore
│ ├── TsCodeExpression.cs
│ ├── TsCodeStatement.cs
│ ├── TsICodeGenerator.cs
│ ├── TsTypes.cs
│ └── TypeScriptCodeDomTestsCore.csproj
└── redoc.json
├── UpgradeLog.htm
├── UpgradeLog2.htm
├── WebApiClientGen.sln
├── WebApiClientGen.snk
├── WebApiClientGenCore.Abstract
├── AspNetAttributesHelper.cs
├── ClientApiTsFunctionGenAbstract.cs
├── ClientApiTsFunctionGenBase.cs
├── CodeGenParameters.cs
├── ControllersTsClientApiGenBase.cs
├── GlobalSuppressions.cs
├── MethodHelper.cs
├── Poco2CsGen.cs
├── README.md
├── UriQueryHelper.cs
├── UriTemplateTransform.cs
├── WebApiClientGenCore.Abstract.csproj
├── WebApiDescription.cs
└── WebApiDocSingleton.cs
├── WebApiClientGenCore.Aurelia
├── ClientApiTsAureliaFunctionGen.cs
├── ControllersTsAureliaClientApiGen.cs
├── README.md
└── WebApiClientGenCore.Aurelia.csproj
├── WebApiClientGenCore.Axios
├── ClientApiTsAxiosFunctionGen.cs
├── ControllersTsAxiosClientApiGen.cs
├── README.md
└── WebApiClientGenCore.Axios.csproj
├── WebApiClientGenCore.Fetch
├── ClientApiTsFetchFunctionGen.cs
├── ControllersTsFetchClientApiGen.cs
├── README.md
└── WebApiClientGenCore.Fetch.csproj
├── WebApiClientGenCore.NG2
├── ClientApiTsNg2FunctionGen.cs
├── ControllersTsNG2ClientApiGen.cs
├── README.md
└── WebApiClientGenCore.NG2.csproj
├── WebApiClientGenCore.NG2FormGroup
├── CodeObjectHelperForNg2FormGroup.cs
├── ControllersTsNG2FormGroupClientApiGen.cs
├── README.md
└── WebApiClientGenCore.NG2FormGroup.csproj
├── WebApiClientGenCore.jQuery
├── ClientApiTsJqFunctionGen.cs
├── ControllersTsJqClientApiGen.cs
├── README.md
└── WebApiClientGenCore.jQuery.csproj
├── WebApiClientGenCore
├── ApiExplorerHelper.cs
├── ApiExplorerVisibilityEnabledConvention.cs
├── ClientApiFunctionGen.cs
├── CodeGen.cs
├── CodeGenException.cs
├── ControllersClientApiGen.cs
├── MetaTransform.cs
├── PluginFactory.cs
├── README.md
├── RequiredFromQueryAttribute.cs
└── WebApiClientGenCore.csproj
├── _DebugWeb
├── CodeGen.json
├── Controllers
│ ├── CodeGenController.cs
│ └── DummyController.cs
├── DebugWeb.csproj
├── Entities.cs
├── Program.cs
├── Properties
│ └── launchSettings.json
├── appsettings.Development.json
└── appsettings.json
├── _DebugWebClientApi
├── DebugWebClientApi.csproj
└── WebApiClientTextJsonAuto.cs
├── aurelia
├── karma.conf.js
├── package.json
├── readme.txt
├── runtest.ps1
├── src
│ ├── app.spec.ts
│ └── clientapi
│ │ └── WebApiCoreAureliaClientAuto.ts
└── tsconfig.json
├── axios
├── README.md
├── jest.config.js
├── package.json
├── runtest.ps1
├── src
│ ├── All.test.ts
│ ├── App.css
│ ├── clientapi
│ │ └── WebApiCoreAxiosClientAuto.ts
│ └── index.css
└── tsconfig.json
├── buildJqTests.ps1
├── fetchapi
├── jest.config.js
├── package.json
├── readme.txt
├── runtest.ps1
├── src
│ ├── app.spec.ts
│ └── clientapi
│ │ └── WebApiCoreFetchClientAuto.ts
└── tsconfig.json
├── global.json
├── license.md
└── webapiclientgen.smproj
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.cs]
2 |
3 | # CA1303: Do not pass literals as localized parameters
4 | dotnet_diagnostic.CA1303.severity = none
5 |
6 | # CA1307: Specify StringComparison
7 | dotnet_diagnostic.CA1307.severity = none
8 |
9 | # CA1305: Specify IFormatProvider
10 | dotnet_diagnostic.CA1305.severity = none
11 |
12 | # CA1304: Specify CultureInfo
13 | dotnet_diagnostic.CA1304.severity = none
14 |
15 | # CA1062: Validate arguments of public methods
16 | dotnet_diagnostic.CA1062.severity = none
17 |
18 | # CA1819: Properties should not return arrays
19 | dotnet_diagnostic.CA1819.severity = none
20 |
21 | # CA1055: Uri return values should not be strings
22 | dotnet_diagnostic.CA1055.severity = none
23 |
24 | # CA1054: Uri parameters should not be strings
25 | dotnet_diagnostic.CA1054.severity = none
26 |
27 | # CA1051: Do not declare visible instance fields
28 | dotnet_diagnostic.CA1051.severity = none
29 |
30 | dotnet_diagnostic.CA1711.severity = none
31 |
--------------------------------------------------------------------------------
/.github/workflows/dotnetRelease.yml:
--------------------------------------------------------------------------------
1 | # This workflow will build a .NET project
2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
3 |
4 | name: .NET Release
5 |
6 | on:
7 | push:
8 | branches: [ "master" ]
9 | pull_request:
10 | branches: [ "master" ]
11 |
12 | jobs:
13 | build:
14 |
15 | runs-on: ubuntu-latest
16 | strategy:
17 | matrix:
18 | node-version: [22.x]
19 |
20 | steps:
21 | - uses: actions/checkout@v4
22 | - name: Setup .NET
23 | uses: actions/setup-dotnet@v4
24 | with:
25 | dotnet-version: 9.0.x
26 | - name: Restore dependencies
27 | run: dotnet restore
28 | - name: Build
29 | run: dotnet build --no-restore --configuration Release
30 | - name: Test
31 | run: dotnet test --no-build --verbosity normal --configuration Release
32 |
33 |
34 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.dll
2 | *.exe
3 | *.pdb
4 | #ignore thumbnails created by windows
5 | Thumbs.db
6 | #Ignore files build by Visual Studio
7 | *.obj
8 | *.user
9 | *.aps
10 | *.pch
11 | *.vspscc
12 | *_i.c
13 | *_p.c
14 | *.ncb
15 | *.suo
16 | *.tlb
17 | *.tlh
18 | *.bak
19 | *.bak*
20 | *.lck
21 | *.vbak
22 | *.cache
23 | *.ilk
24 | *.log
25 | *.map
26 | *.js.map
27 | [Bb]in
28 | [Dd]ebug*/
29 | *.lib
30 | *.sbr
31 | obj/
32 | [Rr]elease*/
33 | _ReSharper*/
34 | [Tt]est[Rr]esult*
35 | /Fonlow.Oc.WebApi/App_Data
36 | .vs
37 | /DemoAngularJs2/node_modules
38 | /DemoAngular2/node_modules
39 | /DemoWebApi/App_Data/*.ldf
40 | /DemoWebApi/App_Data/*.mdf
41 | /packages
42 | /DemoNGCli/NG
43 | *package-lock.json
44 | /axios/node_modules
45 | /aurelia/coverage
46 | /aurelia/node_modules
47 | /fetchapi/node_modules
48 | /fetchapi/coverage
49 | /DemoNGCli/NGSource/.angular
50 | /DemoNGCli/Prod
51 | /ngdist
52 | /PublishNuGetPackages
53 |
--------------------------------------------------------------------------------
/BuildRelease.ps1:
--------------------------------------------------------------------------------
1 | Set-Location $PSScriptRoot
2 | dotnet build webapiclientgen.sln --configuration Release --no-incremental
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | The code gen and other components serve applications developers who would deliver high quality products, thus the quality of the codes generated is critical. Please make sure all test suites pass.
2 |
3 | [Doc](Doc/) contains UML diagrams stored in WebApiClientGen.vpp (Visual Paradigm) which should help you to navigate the source codes.
4 |
--------------------------------------------------------------------------------
/CreateDebugWebClientApi.ps1:
--------------------------------------------------------------------------------
1 | Set-Location $PSScriptRoot
2 | #Make sure CodeGen.json is saved in format ANSI or UTF-8 without BOM, since ASP.NET Core 2.0 Web API will fail to deserialize POST Body that contains BOM.
3 | #Step 1: Launch Website
4 | $path = "$PSScriptRoot/DebugWeb"
5 | $procArgs = @{
6 | FilePath = "dotnet.exe"
7 | ArgumentList = "run $path/DebugWeb.csproj --no-build"
8 | WorkingDirectory = $path
9 | PassThru = $true
10 | }
11 | $process = Start-Process @procArgs
12 |
13 | #Step 2: Run CodeGen
14 | $restArgs = @{
15 | Uri = 'http://localhost:5000/api/codegen'
16 | Method = 'Post'
17 | InFile = "$PSScriptRoot/DebugWeb/CodeGen.json"
18 | ContentType = 'application/json'
19 | }
20 | try {
21 | $result = Invoke-RestMethod @restArgs
22 | Write-Output $result
23 | }
24 | catch {
25 | Write-Output $_.Exception.Response.StatusCode
26 | $response = $_.Exception.Response.GetResponseStream()
27 | $reader = New-Object System.IO.StreamReader($response)
28 | $reader.BaseStream.Position = 0
29 | $reader.DiscardBufferedData()
30 | $responseBody = $reader.ReadToEnd()
31 | Write-Output $responseBody
32 | }
33 |
34 | Stop-Process $process
--------------------------------------------------------------------------------
/CreateDemoGodAssemblyWebClientApi.ps1:
--------------------------------------------------------------------------------
1 | Set-Location $PSScriptRoot
2 | #Make sure CodeGen.json is saved in format ANSI or UTF-8 without BOM, since ASP.NET Core 2.0 Web API will fail to deserialize POST Body that contains BOM.
3 | #Step 1: Launch Website
4 | $path = "$PSScriptRoot/DemoGodAssemblyWeb"
5 | $procArgs = @{
6 | FilePath = "dotnet.exe"
7 | ArgumentList = "run $path/DemoGodAssemblyWeb.csproj --no-build"
8 | WorkingDirectory = $path
9 | PassThru = $true
10 | }
11 | $process = Start-Process @procArgs
12 |
13 | #Step 2: Run CodeGen
14 | $restArgs = @{
15 | Uri = 'http://localhost:5000/api/codegen'
16 | Method = 'Post'
17 | InFile = "$path/CodeGen.json"
18 | ContentType = 'application/json'
19 | }
20 | try {
21 | $result = Invoke-RestMethod @restArgs
22 | Write-Output $result
23 | }
24 | catch {
25 | Write-Output $_.Exception.Response.StatusCode
26 | $response = $_.Exception.Response.GetResponseStream()
27 | $reader = New-Object System.IO.StreamReader($response)
28 | $reader.BaseStream.Position = 0
29 | $reader.DiscardBufferedData()
30 | $responseBody = $reader.ReadToEnd()
31 | Write-Output $responseBody
32 | }
33 |
34 |
35 | Stop-Process $process
--------------------------------------------------------------------------------
/CreateDemoTextJsonWebClientApi.ps1:
--------------------------------------------------------------------------------
1 | Set-Location $PSScriptRoot
2 | #Make sure CodeGen.json is saved in format ANSI or UTF-8 without BOM, since ASP.NET Core 2.0 Web API will fail to deserialize POST Body that contains BOM.
3 | # Step 3 may be optional
4 | #Step 1: Launch Website
5 | $path = "$PSScriptRoot/DemoTextJsonWeb"
6 | $procArgs = @{
7 | FilePath = "dotnet.exe"
8 | ArgumentList = "run $path/DemoTextJsonWeb.csproj --no-build --launch-profile CodeGen"
9 | WorkingDirectory = $path
10 | PassThru = $true
11 | }
12 | $process = Start-Process @procArgs
13 |
14 | #Step 2: Run CodeGen
15 | $restArgs = @{
16 | Uri = 'http://localhost:5000/api/codegen'
17 | Method = 'Post'
18 | InFile = "$path/CodeGen.json"
19 | ContentType = 'application/json'
20 | }
21 | try {
22 | $result = Invoke-RestMethod @restArgs
23 | Write-Output $result
24 | }
25 | catch {
26 | Write-Output $_.Exception.Response.StatusCode
27 | $response = $_.Exception.Response.GetResponseStream()
28 | $reader = New-Object System.IO.StreamReader($response)
29 | $reader.BaseStream.Position = 0
30 | $reader.DiscardBufferedData()
31 | $responseBody = $reader.ReadToEnd()
32 | Write-Output $responseBody
33 | }
34 |
35 | #Step 3: Build the .NET lib to verify
36 | dotnet build ./DemoCoreWeb.ClientApiTextJson/DemoCoreWeb.ClientApiTextJson.csproj
37 |
38 | Stop-Process $process
--------------------------------------------------------------------------------
/DemoCoreWeb.ClientApi/DemoCoreWeb.ClientApi.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | 2.0.0
6 | True
7 | latest-all
8 |
9 |
10 |
11 | 1701;1702;1570;1591;1573;IDE0090;IDE0044
12 |
13 |
14 |
15 | 1701;1702;1570;1591;1573;IDE0090;IDE0044
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/DemoCoreWeb.ClientApiTextJson/DemoCoreWeb.ClientApiTextJson.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 | latest-all
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/DemoCoreWeb.ClientApiTextJson/README.md:
--------------------------------------------------------------------------------
1 | Generated client API codes utilizing System.Text.Json.
2 |
3 | Integration test suits is Tests/IntegrationTestsTextJson.
4 |
5 | The codegen.json of the Web API should be:
6 | 1. `"UseSystemTextJson": true`
7 | 1. `"ClientLibraryProjectFolderName": "..\\..\\..\\..\\DemoCoreWeb.ClientApiTextJson"`
8 |
--------------------------------------------------------------------------------
/DemoCoreWeb/.config/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "dotnet-ef": {
6 | "version": "6.0.2",
7 | "commands": [
8 | "dotnet-ef"
9 | ]
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/DemoCoreWeb/CodeGenDebug.json:
--------------------------------------------------------------------------------
1 | {
2 | "ApiSelections": {
3 | "ExcludedControllerNames": [
4 | "DemoWebApi.Controllers.Home",
5 | "DemoWebApi.Controllers.FileUpload"
6 | ],
7 |
8 | "DataModels": [
9 | {
10 | "AssemblyName": "DemoWebApi.DemoDataCore",
11 | "CherryPickingMethods": 3
12 | },
13 |
14 | {
15 | "AssemblyName": "DemoCoreWeb",
16 | "CherryPickingMethods": 3
17 | }
18 | ],
19 |
20 | "CherryPickingMethods": 3
21 | },
22 |
23 | "ClientApiOutputs": {
24 | "ClientLibraryProjectFolderName": "..\\..\\DemoCoreWeb.ClientApi",
25 | "GenerateBothAsyncAndSync": true,
26 | "DIFriendly": true,
27 | "StringAsString": true,
28 | "CamelCase": true,
29 | "CSClientNamespaceSuffix": ".Client",
30 | "UseEnsureSuccessStatusCodeEx": true,
31 |
32 | "Plugins": [
33 | {
34 | "AssemblyName": "Fonlow.WebApiClientGenCore.NG2",
35 | "TargetDir": "..\\..\\DemoNGCli\\NGSource\\src\\ClientApi",
36 | "TSFile": "WebApiCoreNG2ClientAuto.ts",
37 | "AsModule": true,
38 | "ContentType": "application/json;charset=UTF-8",
39 | "ClientNamespaceSuffix": ".Client",
40 | "ContainerNameSuffix": ""
41 | }
42 | ]
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/DemoCoreWeb/Properties/PublishProfiles/FolderProfile.pubxml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | True
8 | False
9 | True
10 | Release
11 | Any CPU
12 | FileSystem
13 | bin\Release\net6.0\publish\
14 | FileSystem
15 |
16 | net6.0
17 | ff2c1a74-2993-4b88-8995-809bb997ad7a
18 | false
19 | win-x64
20 |
21 |
--------------------------------------------------------------------------------
/DemoCoreWeb/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "IIS Express": {
4 | "commandName": "IISExpress",
5 | "launchBrowser": true,
6 | "launchUrl": "api/values",
7 | "environmentVariables": {
8 | "ASPNETCORE_ENVIRONMENT": "Development"
9 | }
10 | },
11 | "DemoCoreWeb": {
12 | "commandName": "Project",
13 | "workingDirectory": "bin\\Debug\\net9.0",
14 | "launchBrowser": true,
15 | "launchUrl": "api/values",
16 | "environmentVariables": {
17 | "ASPNETCORE_ENVIRONMENT": "Development"
18 | },
19 | "applicationUrl": "http://localhost:56321/"
20 | }
21 | },
22 | "iisSettings": {
23 | "windowsAuthentication": false,
24 | "anonymousAuthentication": true,
25 | "iisExpress": {
26 | "applicationUrl": "http://localhost:56321/",
27 | "sslPort": 0
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/DemoCoreWeb/README.md:
--------------------------------------------------------------------------------
1 | # DemoCoreWeb
2 |
3 | Utilizing Newtonsoft.Json, this Web service contains rich data types and Web API prototypes for covering maximum number of data types in .NET and Web API prototypes in ASP.NET.
4 |
5 | # Testing Client API for jQuery
6 |
7 | This CS project contains TS codes for testing client API for jQuery, and the test platform is QUnit. And the JS test suites is hosted in the same Web service.
8 |
9 | The TS files in Scripts are compiled into `./wwwroot/scripts/` according to `tsconfig.json` when saving, then run "UpdateJqTests.bat" to copy to `bin/Debug/Net8.0/wwwroot'.
10 |
11 | After launching DemoCoreWeb, run `tests.html`.
12 |
13 | **Reamrks**
14 |
15 | * Sometimes the launched Web service insists on using cached JS files somewhere, then build DemoCoreWeb and launch again.
16 |
17 |
18 | **Hints**
19 |
20 | * When using the DEBUG build hosting in IIS, you need to modify `DemoCoreWeb.staticwebassets.runtime.json` and change CurrentRoots to:
21 | `"ContentRoots":["C:\\inetpub\\wwwroot\\DemoCoreWebService\\wwwroot\\"]` or alike, absolute path needed.
22 |
--------------------------------------------------------------------------------
/DemoCoreWeb/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "IncludeScopes": false,
4 | "LogLevel": {
5 | "Default": "Debug",
6 | "System": "Information",
7 | "Microsoft": "Information"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/DemoCoreWeb/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "IncludeScopes": false,
4 | "Debug": {
5 | "LogLevel": {
6 | "Default": "Warning"
7 | }
8 | },
9 | "Console": {
10 | "LogLevel": {
11 | "Default": "Information"
12 | }
13 | }
14 | },
15 |
16 | "Kestrel": {
17 | "EndPoints": {
18 | "Http": {
19 | "Url": "http://localhost:5000"
20 | },
21 |
22 | "HttpsDefaultCert": {
23 | "Url": "https://localhost:5001"
24 | }
25 |
26 | }
27 |
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/DemoCoreWeb/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": true,
3 | "compilerOptions": {
4 | "outDir": "./wwwroot/scripts/",
5 | "sourceMap": true,
6 | "declaration": false,
7 | "moduleResolution": "node",
8 | "emitDecoratorMetadata": true,
9 | "experimentalDecorators": true,
10 | "target": "ES2022",
11 | "lib": [
12 | "ES2022",
13 | "dom"
14 | ]
15 |
16 | },
17 |
18 | "exclude": [
19 | "scripts/typing/qunit/qunit-1.16.d.ts"
20 | ]
21 | }
--------------------------------------------------------------------------------
/DemoCoreWeb/web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/DemoCoreWeb/wwwroot/tests.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | QUnit Example
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Test with DemoCore Web
19 |
--------------------------------------------------------------------------------
/DemoCoreWebControllers/Controllers/HomeController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Web;
5 | using Microsoft.AspNetCore.Mvc;
6 |
7 | namespace DemoWebApi.Controllers
8 | {
9 | [Route("api/[controller]")]
10 | public class HomeController : Controller
11 | {
12 | [HttpGet]
13 | public ActionResult Index()
14 | {
15 | ViewBag.Title = "Home Page";
16 |
17 | return View();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/DemoCoreWebControllers/DemoCoreWebControllers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 | True
7 | latest-minimum
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/Controllers/HomeController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Web;
5 | using Microsoft.AspNetCore.Mvc;
6 |
7 | namespace DemoWebApi.Controllers
8 | {
9 | [Route("api/[controller]")]
10 | public class HomeController : Controller
11 | {
12 | [HttpGet]
13 | public ActionResult Index()
14 | {
15 | ViewBag.Title = "Home Page";
16 |
17 | return View();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/DemoGodAssemblyWeb.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 | True
7 | latest-minimum
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/DemoGodAssemblyWeb.http:
--------------------------------------------------------------------------------
1 | @DemoGodAssemblyWeb_HostAddress = http://localhost:5193
2 |
3 | GET {{DemoGodAssemblyWeb_HostAddress}}/weatherforecast/
4 | Accept: application/json
5 |
6 | ###
7 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json.schemastore.org/launchsettings.json",
3 | "iisSettings": {
4 | "windowsAuthentication": false,
5 | "anonymousAuthentication": true,
6 | "iisExpress": {
7 | "applicationUrl": "http://localhost:27348",
8 | "sslPort": 0
9 | }
10 | },
11 | "profiles": {
12 | "http": {
13 | "commandName": "Project",
14 | "dotnetRunMessages": true,
15 | "launchBrowser": false,
16 | "launchUrl": "swagger",
17 | "applicationUrl": "http://localhost:5000",
18 | "environmentVariables": {
19 | "ASPNETCORE_ENVIRONMENT": "Development"
20 | }
21 | },
22 | "IIS Express": {
23 | "commandName": "IISExpress",
24 | "launchBrowser": true,
25 | "launchUrl": "swagger",
26 | "environmentVariables": {
27 | "ASPNETCORE_ENVIRONMENT": "Development"
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/DemoGodAssemblyWeb/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | },
8 | "AllowedHosts": "*"
9 | }
10 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/DemoTextJsonWeb.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 | latest-minimum
7 | True
8 | 2.1
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/DemoTextJsonWeb.http:
--------------------------------------------------------------------------------
1 | @DemoTextJsonWeb_HostAddress = http://localhost:5017
2 |
3 | GET {{DemoTextJsonWeb_HostAddress}}/weatherforecast/
4 | Accept: application/json
5 |
6 | ###
7 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json.schemastore.org/launchsettings.json",
3 | "iisSettings": {
4 | "windowsAuthentication": false,
5 | "anonymousAuthentication": true,
6 | "iisExpress": {
7 | "applicationUrl": "http://localhost:51940",
8 | "sslPort": 44318
9 | }
10 | },
11 | "profiles": {
12 | "http": {
13 | "commandName": "Project",
14 | "dotnetRunMessages": true,
15 | "launchBrowser": false,
16 | "launchUrl": "swagger",
17 | "applicationUrl": "http://localhost:6000",
18 | "environmentVariables": {
19 | "ASPNETCORE_ENVIRONMENT": "Development"
20 | }
21 | },
22 | "https": {
23 | "commandName": "Project",
24 | "dotnetRunMessages": true,
25 | "launchBrowser": true,
26 | "launchUrl": "swagger",
27 | "applicationUrl": "https://localhost:6001",
28 | "environmentVariables": {
29 | "ASPNETCORE_ENVIRONMENT": "Development"
30 | }
31 | },
32 | "CodeGen": {
33 | "commandName": "Project",
34 | "dotnetRunMessages": true,
35 | "launchBrowser": false,
36 | "launchUrl": "swagger",
37 | "applicationUrl": "http://localhost:5000",
38 | "environmentVariables": {
39 | "ASPNETCORE_ENVIRONMENT": "Development"
40 | }
41 | },
42 |
43 | "IIS Express": {
44 | "commandName": "IISExpress",
45 | "launchBrowser": true,
46 | "launchUrl": "swagger",
47 | "environmentVariables": {
48 | "ASPNETCORE_ENVIRONMENT": "Development"
49 | }
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/README.md:
--------------------------------------------------------------------------------
1 | # DemoTextJsonWeb
2 |
3 | Almost identical to DemoCoreWeb, this Web API utializes System.Text.Json for serialization, and not hosting jQuery scripts.
4 |
5 | The integration test suite is primarily Tests/IntegrationTestsTextJson, while IntegrationTestsCore can also be used from time to time.
--------------------------------------------------------------------------------
/DemoTextJsonWeb/appsettings.Development.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "Logging": {
3 | "LogLevel": {
4 | "Default": "Information",
5 | "Microsoft.AspNetCore": "Warning"
6 | },
7 | "IncludeScopes": false,
8 | "Debug": {
9 | "LogLevel": {
10 | "Default": "Warning"
11 | }
12 | },
13 | "Console": {
14 | "LogLevel": {
15 | "Default": "Information"
16 | }
17 | }
18 | },
19 |
20 | "AllowedHosts": "*"
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/DemoTextJsonWeb/web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/DemoWebApi.DemoDataCore/DemoWebApi.DemoDataCore.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | true
6 | latest-minimum
7 |
8 |
9 |
10 | 1701;1702;1705;1591
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/DemoWebApi.DemoDataCore/WeatherForecast.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace WebApplication1
4 | {
5 | public class WeatherForecast
6 | {
7 | public DateOnly Date { get; set; }
8 |
9 | public int TemperatureC { get; set; }
10 |
11 | public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
12 |
13 | public string? Summary { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/DemoWebApiDemoDataEx/DemoWebApiDemoDataEx.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/DemoWebApiDemoDataEx/ExtendedModels.cs:
--------------------------------------------------------------------------------
1 | using DemoWebApi.DemoData;
2 | using System.Runtime.Serialization;
3 |
4 | namespace DemoWebApi.DemoDataEx
5 | {
6 | [DataContract]
7 | public class Trust : BizEntity
8 | {
9 | [DataMember]
10 | public string Trustee { get; set; }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/10278762043895042862:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/10278762043895042862
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/15993272203953158972:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/15993272203953158972
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/emptyStarIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/emptyStarIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/l(1):
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/l(1)
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/ASP.NET Web API, Angular2, TypeScript and WebApiClientGen - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/10278762043895042862:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/10278762043895042862
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/10940427547918388834:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/10940427547918388834
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/DateOnly in .NET 6 and ASP.NET Core 6 - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/10278762043895042862:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/10278762043895042862
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/10619241673506865619:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/10619241673506865619
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/l(1):
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/l(1)
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Core Web API - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/12555067034053073112:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/12555067034053073112
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/3139474159076857370:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/3139474159076857370
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/emptyStarIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/emptyStarIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate C# Client API for ASP.NET Web API - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/1.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/print48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/print48.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/star-empty-lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/star-empty-lg.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/star-fill-lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/star-fill-lg.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/t.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/t.gif
--------------------------------------------------------------------------------
/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/views32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate TypeScript Client API for ASP.NET Web API- CodeProject_files/views32.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/3139474159076857370:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/3139474159076857370
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/4159795166271768970:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/4159795166271768970
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/l(1):
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/l(1)
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Generate Typed FormGroup of Angular Reactive Forms with ASP.NET Core Web API - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/10940427547918388834:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/10940427547918388834
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/3139474159076857370:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/3139474159076857370
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Intended Solutions for Intentional Limitations of Strongly Typed OpenAPI Client Generators - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/12987517371217392749:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/12987517371217392749
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/6528562391515211296:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/6528562391515211296
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/aframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/l:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/l
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/l(1):
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/l(1)
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/logo250x135.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/logo250x135.gif
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/main-app-f38f0d9153b95312.js.download:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{836:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(836))),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/reach_worklet(1).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/reach_worklet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/saved_resource(2).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/saved_resource(3).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/saved_resource(4).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/saved_resource(5).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/saved_resource(6).html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/sodar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/sodar
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/starIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/starIcon.png
--------------------------------------------------------------------------------
/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/viewsIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/Articles/Tour of Heroes_ Blazor WebAssembly Standalone App - CodeProject_files/viewsIcon.png
--------------------------------------------------------------------------------
/Doc/WebApiClientGen.vpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/WebApiClientGen.vpp
--------------------------------------------------------------------------------
/Doc/icons/TypeScriptCodeDOM128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/icons/TypeScriptCodeDOM128.png
--------------------------------------------------------------------------------
/Doc/icons/TypeScriptCodeDOM256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/icons/TypeScriptCodeDOM256.png
--------------------------------------------------------------------------------
/Doc/icons/TypeScriptCodeDOM64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/icons/TypeScriptCodeDOM64.png
--------------------------------------------------------------------------------
/Doc/images/Poco2TsTests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/Poco2TsTests.png
--------------------------------------------------------------------------------
/Doc/images/Settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/Settings.png
--------------------------------------------------------------------------------
/Doc/images/TS2531Warning.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/TS2531Warning.jpg
--------------------------------------------------------------------------------
/Doc/images/WebApiClientGen.Abstract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/WebApiClientGen.Abstract.png
--------------------------------------------------------------------------------
/Doc/images/WebApiClientGen.Poco2Ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/WebApiClientGen.Poco2Ts.png
--------------------------------------------------------------------------------
/Doc/images/WebApiClientGen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/WebApiClientGen.png
--------------------------------------------------------------------------------
/Doc/images/WebApiClientGenCore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/WebApiClientGenCore.png
--------------------------------------------------------------------------------
/Doc/images/WebApiClientGenTests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/WebApiClientGenTests.png
--------------------------------------------------------------------------------
/Doc/images/ngTests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zijianhuang/webapiclientgen/44b9ef699c85721bb80413b3dd5fe2f58419ea0c/Doc/images/ngTests.png
--------------------------------------------------------------------------------
/DotNetPack.ps1:
--------------------------------------------------------------------------------
1 | # pack existing release build
2 | Set-Location $PSScriptRoot
3 | $packCmd = 'dotnet pack $Name --no-build --output Release --configuration Release'
4 | $projList = 'Fonlow.Poco2TsCore/Fonlow.Poco2TsCore.csproj', 'Fonlow.DocCommentCore/Fonlow.DocCommentCore.csproj', 'Fonlow.Web.MetaCore/Fonlow.Web.MetaCore.csproj', 'WebApiClientGenCore.Abstract/WebApiClientGenCore.Abstract.csproj', 'WebApiClientGenCore/WebApiClientGenCore.csproj', 'WebApiClientGenCore.NG2/WebApiClientGenCore.NG2.csproj', 'WebApiClientGenCore.NG2FormGroup/WebApiClientGenCore.NG2FormGroup.csproj', 'WebApiClientGenCore.Aurelia/WebApiClientGenCore.Aurelia.csproj', 'WebApiClientGenCore.Axios/WebApiClientGenCore.Axios.csproj', 'WebApiClientGenCore.Fetch/WebApiClientGenCore.Fetch.csproj', 'WebApiClientGenCore.jQuery/WebApiClientGenCore.jQuery.csproj', 'Fonlow.DateOnlyExtensions/Fonlow.DateOnlyExtensions.csproj', 'Fonlow.DateOnlyExtensionsNet/Fonlow.DateOnlyExtensionsTextJson.csproj', 'Fonlow.IntegralExtension/Fonlow.IntegralExtensions.csproj', 'Fonlow.IntegralExtensionsTextJson/Fonlow.IntegralExtensionsTextJson.csproj'
5 | foreach($name in $projList){
6 | Invoke-Expression $ExecutionContext.InvokeCommand.ExpandString($packCmd)
7 | }
--------------------------------------------------------------------------------
/Fonlow.Auth.PayloadConverters/Fonlow.Auth.PayloadConverters.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | enable
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Fonlow.DateOnlyExtensions/README.md:
--------------------------------------------------------------------------------
1 | **!For ASP.NET Core 6 only!**
2 |
3 | Customized serialization for DateOnly in ASP.NET Core 6 and above, introduced in .NET 6, for the following clients:
4 |
5 | 1. .NET 6 clients
6 | 1. .NET Framework clients
7 | 1. JavaScript clients
8 |
9 | This component depends on NewtonSoft.Json and derives from Newtonsoft.Json.JsonConverter, and can be injected to ASP.NET Core pipeline through only `IServiceCollection.AddNewtonsoftJson()`.
10 |
11 | **Usages:**
12 | ```c#
13 | .AddNewtonsoftJson(
14 | options =>
15 | {
16 | options.SerializerSettings.DateParseHandling = Newtonsoft.Json.DateParseHandling.DateTimeOffset; //Better with this for cross-timezone minValue and .NET Framework clients.
17 | options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; //So when controller will ignore null fileds when returing data
18 |
19 | options.SerializerSettings.Converters.Add(new DateOnlyJsonConverter()); //not needed for ASP.NET 7 and .NET 7 clients. However .NET 6 clients and .NET Framework clients still need DateOnlyJsonConverter
20 | options.SerializerSettings.Converters.Add(new DateOnlyNullableJsonConverter()); // also, needed by JavaScript clients.
21 | }
22 | );
23 |
24 | ```
25 |
26 | **Remarks:**
27 |
28 | * .NET 7 clients and above do not need this in ASP.NET Core 7 and above.
29 |
30 | **Hints:**
31 | * [DateOnly in .NET 6 and ASP.NET Core 6](https://www.codeproject.com/Articles/5325820/DateOnly-in-NET-6-and-ASP-NET-Core-6)
32 | * [DateOnly in ASP.NET 7 with JavaScript Clients](https://www.codeproject.com/Tips/5347111/DateOnly-in-ASP-NET-7-with-JavaScript-Clients)
--------------------------------------------------------------------------------
/Fonlow.DocCommentCore/DocCommentHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Collections.Generic;
4 | using System.Text;
5 |
6 | namespace Fonlow.DocComment
7 | {
8 | ///
9 | /// Helper functions of accessing doc comments of a method
10 | ///
11 | public static class DocCommentHelper
12 | {
13 | static readonly string newLine=Environment.NewLine;
14 |
15 | public static string GetSummary(docMember m)
16 | {
17 | if (m == null || m.summary == null || m.summary.Text == null || m.summary.Text.Length == 0)
18 | {
19 | return null;
20 | }
21 |
22 | IList noIndent = StringFunctions.TrimTrimIndentsOfArray(m.summary.Text);
23 | return String.Join(newLine, noIndent);
24 | }
25 |
26 | public static string GetReturnComment(docMember m)
27 | {
28 | if (m == null || m.returns == null || m.returns.Text == null || m.returns.Text.Length == 0)
29 | {
30 | return null;
31 | }
32 |
33 | IList noIndent = StringFunctions.TrimTrimIndentsOfArray(m.returns.Text);
34 | return String.Join(newLine, noIndent);
35 | }
36 |
37 | public static string GetParameterComment(docMember m, string name)
38 | {
39 | if (m == null || m.param == null)
40 | {
41 | return null;
42 | }
43 |
44 | docMemberParam mc = m.param.SingleOrDefault(d => d.name == name);
45 | if (mc == null || mc.Text == null || mc.Text.Length == 0)
46 | {
47 | return null;
48 | }
49 |
50 | IList noIndent = StringFunctions.TrimTrimIndentsOfArray(mc.Text);
51 | return String.Join(newLine, noIndent);
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/Fonlow.DocCommentCore/README.md:
--------------------------------------------------------------------------------
1 | Basic functions of accessing XML Doc Comments.
2 |
3 | **Remarks:**
4 | * The parser of XML is generated with XmlDocument.xsd.
--------------------------------------------------------------------------------
/Fonlow.IntegralExtensionsTextJson/BigIntegerJsonConverter.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Numerics;
3 | using System.Text.Json.Serialization;
4 | using System.Text.Json;
5 |
6 | namespace Fonlow.IntegralExtensions
7 | {
8 | public class BigIntegerJsonConverter : JsonConverter
9 | {
10 | public override BigInteger Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
11 | {
12 | if (reader.TokenType == JsonTokenType.Number)
13 | {
14 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
15 | string rawText = doc.RootElement.GetRawText();
16 | return BigInteger.Parse(rawText, NumberFormatInfo.InvariantInfo);
17 | }
18 | else if (reader.TokenType == JsonTokenType.String)
19 | {
20 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
21 | string text = doc.RootElement.GetString();
22 | return BigInteger.Parse(text, NumberFormatInfo.InvariantInfo);
23 | }
24 |
25 | throw new JsonException(string.Format("Found token {0} but expected token {1}", reader.TokenType, JsonTokenType.Number));
26 | }
27 |
28 | public override void Write(Utf8JsonWriter writer, BigInteger value, JsonSerializerOptions options) =>
29 | writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Fonlow.IntegralExtensionsTextJson/Int128JsonConverter.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Text.Json;
3 | using System.Text.Json.Serialization;
4 |
5 | namespace Fonlow.IntegralExtensions
6 | {
7 | public class Int128JsonConverter : JsonConverter
8 | {
9 | public override Int128 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
10 | {
11 | if (reader.TokenType == JsonTokenType.Number)
12 | {
13 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
14 | string rawText = doc.RootElement.GetRawText();
15 | return Int128.Parse(rawText, NumberFormatInfo.InvariantInfo);
16 | }
17 | else if (reader.TokenType == JsonTokenType.String)
18 | {
19 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
20 | string text = doc.RootElement.GetString();
21 | return Int128.Parse(text, NumberFormatInfo.InvariantInfo);
22 | }
23 |
24 | throw new JsonException(string.Format("Found token {0} but expected token {1}", reader.TokenType, JsonTokenType.Number));
25 | }
26 |
27 | public override void Write(Utf8JsonWriter writer, Int128 value, JsonSerializerOptions options) =>
28 | writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Fonlow.IntegralExtensionsTextJson/Int64JsonConverter.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Text.Json;
3 | using System.Text.Json.Serialization;
4 |
5 | namespace Fonlow.IntegralExtensions
6 | {
7 | public class Int64JsonConverter : JsonConverter
8 | {
9 | public override Int64 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
10 | {
11 | if (reader.TokenType == JsonTokenType.Number)
12 | {
13 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
14 | string rawText = doc.RootElement.GetRawText();
15 | return Int64.Parse(rawText, NumberFormatInfo.InvariantInfo);
16 | }
17 | else if (reader.TokenType == JsonTokenType.String)
18 | {
19 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
20 | string text = doc.RootElement.GetString();
21 | return Int64.Parse(text, NumberFormatInfo.InvariantInfo);
22 | }
23 |
24 | throw new JsonException(string.Format("Found token {0} but expected token {1}", reader.TokenType, JsonTokenType.Number));
25 | }
26 |
27 | public override void Write(Utf8JsonWriter writer, Int64 value, JsonSerializerOptions options) =>
28 | writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Fonlow.IntegralExtensionsTextJson/UInt128JsonConverter.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Text.Json;
3 | using System.Text.Json.Serialization;
4 |
5 | namespace Fonlow.IntegralExtensions
6 | {
7 | public class UInt128JsonConverter : JsonConverter
8 | {
9 | public override UInt128 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
10 | {
11 | if (reader.TokenType == JsonTokenType.Number)
12 | {
13 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
14 | string rawText = doc.RootElement.GetRawText();
15 | return UInt128.Parse(rawText, NumberFormatInfo.InvariantInfo);
16 | }
17 | else if (reader.TokenType == JsonTokenType.String)
18 | {
19 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
20 | string text = doc.RootElement.GetString();
21 | return UInt128.Parse(text, NumberFormatInfo.InvariantInfo);
22 | }
23 |
24 | throw new JsonException(string.Format("Found token {0} but expected token {1}", reader.TokenType, JsonTokenType.Number));
25 | }
26 |
27 | public override void Write(Utf8JsonWriter writer, UInt128 value, JsonSerializerOptions options) =>
28 | writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Fonlow.IntegralExtensionsTextJson/UInt64JsonConverter.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Text.Json;
3 | using System.Text.Json.Serialization;
4 |
5 | namespace Fonlow.IntegralExtensions
6 | {
7 | public class UInt64JsonConverter : JsonConverter
8 | {
9 | public override UInt64 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
10 | {
11 | if (reader.TokenType == JsonTokenType.Number)
12 | {
13 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
14 | string rawText = doc.RootElement.GetRawText();
15 | return UInt64.Parse(rawText, NumberFormatInfo.InvariantInfo);
16 | }
17 | else if (reader.TokenType == JsonTokenType.String)
18 | {
19 | using JsonDocument doc = JsonDocument.ParseValue(ref reader);
20 | string text = doc.RootElement.GetString();
21 | return UInt64.Parse(text, NumberFormatInfo.InvariantInfo);
22 | }
23 |
24 | throw new JsonException(string.Format("Found token {0} but expected token {1}", reader.TokenType, JsonTokenType.Number));
25 | }
26 |
27 | public override void Write(Utf8JsonWriter writer, UInt64 value, JsonSerializerOptions options) =>
28 | writer.WriteStringValue(value.ToString(NumberFormatInfo.InvariantInfo));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Fonlow.Poco2TsCore/CodeNamespaceEx.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.CodeDom;
3 | using System.Collections.Generic;
4 | using System.Diagnostics.CodeAnalysis;
5 |
6 | namespace Fonlow.CodeDom
7 | {
8 | public class CodeNamespaceEx : CodeNamespace
9 | {
10 | public bool DataModelOnly { get; private set; }
11 |
12 | public CodeNamespaceEx(string name, bool dataModelOnly): base(name)
13 | {
14 | DataModelOnly= dataModelOnly;
15 | }
16 | }
17 |
18 | public class CodeNamespaceComparer : IEqualityComparer
19 | {
20 | public bool Equals(CodeNamespaceEx x, CodeNamespaceEx y)
21 | {
22 | return x.Name==y.Name && x.DataModelOnly==y.DataModelOnly;
23 | }
24 |
25 | public int GetHashCode([DisallowNull] CodeNamespaceEx obj)
26 | {
27 | if (Object.ReferenceEquals(obj, null)) return 0;
28 |
29 | int hashProductName = obj.Name == null ? 0 : obj.Name.GetHashCode();
30 |
31 | //Get hash code for the Code field.
32 | int hashProductCode = obj.DataModelOnly.GetHashCode();
33 |
34 | //Calculate the hash code for the product.
35 | return hashProductName ^ hashProductCode;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Fonlow.Poco2TsCore/CommentsHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel.DataAnnotations;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Fonlow.Poco2Client
9 | {
10 | public static class CommentsHelper
11 | {
12 | ///
13 | /// Generate doc comments from attributes, and the attributes are sorted according to RequiredAttribute
14 | ///
15 | ///
16 | ///
17 | ///
18 | public static string[] GenerateCommentsFromAttributes(
19 | #pragma warning disable CA1002 // Do not expose generic lists, but I need to sort it.
20 | List attributes,
21 | #pragma warning restore CA1002 // Do not expose generic lists
22 | IDictionary> attribueCommentDic)
23 | {
24 | List ss = new List();
25 | attributes.Sort((x, y) =>
26 | {
27 | // Special-case RequiredAttribute so that it shows up on top
28 | if (x is RequiredAttribute)
29 | {
30 | return -1;
31 | }
32 | if (y is RequiredAttribute)
33 | {
34 | return 1;
35 | }
36 |
37 | return 0;
38 | });
39 |
40 | foreach (Attribute attribute in attributes)
41 | {
42 | if (attribueCommentDic.TryGetValue(attribute.GetType(), out Func