├── .gitignore ├── LICENSE ├── README.md ├── api ├── .bowerrc ├── Controllers │ ├── GeneratorController.cs │ └── Range.cs ├── Program.cs ├── Startup.cs ├── api.csproj ├── appsettings.Development.json ├── appsettings.json └── global.json └── generator.sln /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/visualstudio 3 | 4 | ### VisualStudio ### 5 | ## Ignore Visual Studio temporary files, build results, and 6 | ## files generated by popular Visual Studio add-ons. 7 | ## 8 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 9 | 10 | # User-specific files 11 | *.suo 12 | *.user 13 | *.userosscache 14 | *.sln.docstates 15 | 16 | # User-specific files (MonoDevelop/Xamarin Studio) 17 | *.userprefs 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | bld/ 27 | [Bb]in/ 28 | [Oo]bj/ 29 | [Ll]og/ 30 | 31 | # Visual Studio 2015 cache/options directory 32 | .vs/ 33 | # Uncomment if you have tasks that create the project's static files in wwwroot 34 | #wwwroot/ 35 | 36 | # MSTest test Results 37 | [Tt]est[Rr]esult*/ 38 | [Bb]uild[Ll]og.* 39 | 40 | # NUNIT 41 | *.VisualState.xml 42 | TestResult.xml 43 | 44 | # Build Results of an ATL Project 45 | [Dd]ebugPS/ 46 | [Rr]eleasePS/ 47 | dlldata.c 48 | 49 | # .NET Core 50 | project.lock.json 51 | project.fragment.lock.json 52 | artifacts/ 53 | **/Properties/launchSettings.json 54 | 55 | *_i.c 56 | *_p.c 57 | *_i.h 58 | *.ilk 59 | *.meta 60 | *.obj 61 | *.pch 62 | *.pdb 63 | *.pgc 64 | *.pgd 65 | *.rsp 66 | *.sbr 67 | *.tlb 68 | *.tli 69 | *.tlh 70 | *.tmp 71 | *.tmp_proj 72 | *.log 73 | *.vspscc 74 | *.vssscc 75 | .builds 76 | *.pidb 77 | *.svclog 78 | *.scc 79 | 80 | # Chutzpah Test files 81 | _Chutzpah* 82 | 83 | # Visual C++ cache files 84 | ipch/ 85 | *.aps 86 | *.ncb 87 | *.opendb 88 | *.opensdf 89 | *.sdf 90 | *.cachefile 91 | *.VC.db 92 | *.VC.VC.opendb 93 | 94 | # Visual Studio profiler 95 | *.psess 96 | *.vsp 97 | *.vspx 98 | *.sap 99 | 100 | # TFS 2012 Local Workspace 101 | $tf/ 102 | 103 | # Guidance Automation Toolkit 104 | *.gpState 105 | 106 | # ReSharper is a .NET coding add-in 107 | _ReSharper*/ 108 | *.[Rr]e[Ss]harper 109 | *.DotSettings.user 110 | 111 | # JustCode is a .NET coding add-in 112 | .JustCode 113 | 114 | # TeamCity is a build add-in 115 | _TeamCity* 116 | 117 | # DotCover is a Code Coverage Tool 118 | *.dotCover 119 | 120 | # Visual Studio code coverage results 121 | *.coverage 122 | *.coveragexml 123 | 124 | # NCrunch 125 | _NCrunch_* 126 | .*crunch*.local.xml 127 | nCrunchTemp_* 128 | 129 | # MightyMoose 130 | *.mm.* 131 | AutoTest.Net/ 132 | 133 | # Web workbench (sass) 134 | .sass-cache/ 135 | 136 | # Installshield output folder 137 | [Ee]xpress/ 138 | 139 | # DocProject is a documentation generator add-in 140 | DocProject/buildhelp/ 141 | DocProject/Help/*.HxT 142 | DocProject/Help/*.HxC 143 | DocProject/Help/*.hhc 144 | DocProject/Help/*.hhk 145 | DocProject/Help/*.hhp 146 | DocProject/Help/Html2 147 | DocProject/Help/html 148 | 149 | # Click-Once directory 150 | publish/ 151 | 152 | # Publish Web Output 153 | *.[Pp]ublish.xml 154 | *.azurePubxml 155 | # TODO: Comment the next line if you want to checkin your web deploy settings 156 | # but database connection strings (with potential passwords) will be unencrypted 157 | *.pubxml 158 | *.publishproj 159 | 160 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 161 | # checkin your Azure Web App publish settings, but sensitive information contained 162 | # in these scripts will be unencrypted 163 | PublishScripts/ 164 | 165 | # NuGet Packages 166 | *.nupkg 167 | # The packages folder can be ignored because of Package Restore 168 | **/packages/* 169 | # except build/, which is used as an MSBuild target. 170 | !**/packages/build/ 171 | # Uncomment if necessary however generally it will be regenerated when needed 172 | #!**/packages/repositories.config 173 | # NuGet v3's project.json files produces more ignorable files 174 | *.nuget.props 175 | *.nuget.targets 176 | 177 | # Microsoft Azure Build Output 178 | csx/ 179 | *.build.csdef 180 | 181 | # Microsoft Azure Emulator 182 | ecf/ 183 | rcf/ 184 | 185 | # Windows Store app package directories and files 186 | AppPackages/ 187 | BundleArtifacts/ 188 | Package.StoreAssociation.xml 189 | _pkginfo.txt 190 | 191 | # Visual Studio cache files 192 | # files ending in .cache can be ignored 193 | *.[Cc]ache 194 | # but keep track of directories ending in .cache 195 | !*.[Cc]ache/ 196 | 197 | # Others 198 | ClientBin/ 199 | ~$* 200 | *~ 201 | *.dbmdl 202 | *.dbproj.schemaview 203 | *.jfm 204 | *.pfx 205 | *.publishsettings 206 | orleans.codegen.cs 207 | 208 | # Since there are multiple workflows, uncomment next line to ignore bower_components 209 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 210 | #bower_components/ 211 | 212 | # RIA/Silverlight projects 213 | Generated_Code/ 214 | 215 | # Backup & report files from converting an old project file 216 | # to a newer Visual Studio version. Backup files are not needed, 217 | # because we have git ;-) 218 | _UpgradeReport_Files/ 219 | Backup*/ 220 | UpgradeLog*.XML 221 | UpgradeLog*.htm 222 | 223 | # SQL Server files 224 | *.mdf 225 | *.ldf 226 | *.ndf 227 | 228 | # Business Intelligence projects 229 | *.rdl.data 230 | *.bim.layout 231 | *.bim_*.settings 232 | 233 | # Microsoft Fakes 234 | FakesAssemblies/ 235 | 236 | # GhostDoc plugin setting file 237 | *.GhostDoc.xml 238 | 239 | # Node.js Tools for Visual Studio 240 | .ntvs_analysis.dat 241 | node_modules/ 242 | 243 | # Typescript v1 declaration files 244 | typings/ 245 | 246 | # Visual Studio 6 build log 247 | *.plg 248 | 249 | # Visual Studio 6 workspace options file 250 | *.opt 251 | 252 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 253 | *.vbw 254 | 255 | # Visual Studio LightSwitch build output 256 | **/*.HTMLClient/GeneratedArtifacts 257 | **/*.DesktopClient/GeneratedArtifacts 258 | **/*.DesktopClient/ModelManifest.xml 259 | **/*.Server/GeneratedArtifacts 260 | **/*.Server/ModelManifest.xml 261 | _Pvt_Extensions 262 | 263 | # Paket dependency manager 264 | .paket/paket.exe 265 | paket-files/ 266 | 267 | # FAKE - F# Make 268 | .fake/ 269 | 270 | # JetBrains Rider 271 | .idea/ 272 | *.sln.iml 273 | 274 | # CodeRush 275 | .cr/ 276 | 277 | # Python Tools for Visual Studio (PTVS) 278 | __pycache__/ 279 | *.pyc 280 | 281 | # Cake - Uncomment if you are using it 282 | # tools/** 283 | # !tools/packages.config 284 | 285 | # Telerik's JustMock configuration file 286 | *.jmconfig 287 | 288 | # BizTalk build output 289 | *.btp.cs 290 | *.btm.cs 291 | *.odx.cs 292 | *.xsd.cs 293 | 294 | # End of https://www.gitignore.io/api/visualstudio 295 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Wes Higbee 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Access this repository: http://bit.ly/aspnetcoredocker 2 | 3 | ## Branch to course mapping 4 | 5 | This repository contains source code for two courses: 6 | - **Docker Images and Containers for ASP.NET Core** 7 | - The starting point is [pluralsight-images-start](https://github.com/g0t4/aspnetcore-generator-api/tree/pluralsight-images-start). Also [master](https://github.com/g0t4/aspnetcore-generator-api/) 8 | - The stopping point is [pluralsight-images-end](https://github.com/g0t4/aspnetcore-generator-api/tree/pluralsight-images-end) 9 | - **Building a Deployment Pipeline for ASP.NET Core with Docker** 10 | - The starting point is [pluralsight-pipeline-start](https://github.com/g0t4/aspnetcore-generator-api/tree/pluralsight-pipeline-start) 11 | - The stopping point is [pluralsight-pipeline-end](https://github.com/g0t4/aspnetcore-generator-api/tree/pluralsight-pipeline-end) 12 | - The `docker config` example: [docker-config-prodappsettings](https://github.com/g0t4/aspnetcore-generator-api/tree/docker-config-prodappsettings) 13 | - The NGINX reverse proxy example: [nginx-proxy](https://github.com/g0t4/aspnetcore-generator-api/tree/nginx-proxy) 14 | - The performance testing environment: [perf](https://github.com/g0t4/aspnetcore-generator-api/tree/perf) 15 | - The [course](https://github.com/g0t4/aspnetcore-generator-api/tree/course) branch is what I used throughout both courses as a single branch of all changes minus the above three one-off branches at the end of the second course. 16 | 17 | ## Links 18 | 19 | - Troubleshooting Docker for Windows, the docs are wonderful: 20 | - https://docs.docker.com/docker-for-windows/troubleshoot/ 21 | - Especially, read "Limitations of Windows containers for localhost and published ports": https://docs.docker.com/docker-for-windows/troubleshoot/#limitations-of-windows-containers-for-localhost-and-published-ports 22 | 23 | ## Errata / Updates 24 | 25 | ### 2.2.0 notes 26 | 27 | - [ ] [Arm64/Linux] 2.2 docker images https://github.com/dotnet/dotnet-docker/issues/504 28 | 29 | ### 2.1.0 notes 30 | 31 | - **Starting with .NET Core 2.1-preview2, the ASP.NET Core images (previously in [`microsoft/aspnetcore`](https://hub.docker.com/r/microsoft/aspnetcore) & [`microsoft/aspnetcore-build`](https://hub.docker.com/r/microsoft/aspnetcore-build) ) will be consolidated into the Docker Hub [`microsoft/dotnet`](https://hub.docker.com/r/microsoft/dotnet/) repository.** 32 | - **DOES NOT AFFECT 2.0 and 1.X images**. 33 | - **DOES NOT AFFECT non-aspnetcore apps**. 34 | - [Announcement: _Migrating from aspnetcore docker repos to dotnet_](https://github.com/aspnet/Announcements/issues/298) 35 | - *I've always wondered why separate aspnetcore repositories were necessary so I welcome this change!* 36 | - **Historically**, as mentioned in the course, we've had three repos: 37 | 1. `microsoft/dotnet` 38 | - General .NET Core development (non-aspnetcore apps, i.e. console apps) 39 | - Contains runtime/production images, i.e. `microsoft/dotnet:2-runtime` 40 | - Contains sdk/development images, i.e. `microsoft/dotnet:2-sdk` 41 | 2. `microsoft/aspnetcore` 42 | - Contains only runtime/production images for ASP.NET Core apps, i.e. `microsoft/aspnetcore:2` 43 | 3. `microsoft/aspnetcore-build` 44 | - Contains only sdk/development images for ASP.NET Core apps, i.e. `microsoft/aspnetcore-build:2` 45 | - Also contains some front end build tools like nodejs 46 | - This division was confusing because for a general dotnet app you use one repo regardless if you need sdk or runtime, and then if you're developing ASP.NET Core then you have to pick a repo based on needing sdk (build) or runtime! SHEESH! Don't we have better things to worry about :) (I kid, .NET Core is so awesome I don't mind this inconvenience) 47 | - _2.1.300-preview1 is the last version of .NET Core in `aspnetcore/aspnetcore-build` repos_ 48 | - [ ] AFAIK - aspnetcore nightly repos are stopping at v2.0 too 49 | - [`aspnetcore-build-nightly`](https://hub.docker.com/r/microsoft/aspnetcore-build-nightly/) 50 | - [`aspnetcore-nightly`](https://hub.docker.com/r/microsoft/aspnetcore-nightly/) 51 | - **Going forward**: 52 | - *I'm using .NET Core 1.X/2.0:* 53 | - DON'T CHANGE ANYTHING 54 | - "Legacy" repos / organization will remain 55 | - *phew! - can you imagine forcing every .NET Core Dockerfile ever to be updated! There's a good reason why things are left as is historically.* 56 | - Patches & security fixes will continue to be made available in these repositories 57 | - *I'm using .NET Core 2.1:* 58 | - Use `microsoft/dotnet`, that's it! 59 | - Ok, I lied... nightly builds are in [`microsoft/dotnet-nightly`](https://hub.docker.com/r/microsoft/dotnet-nightly) 60 | - **v2.1 is pre-release so all of this is subject to change :)** 61 | - *Common, tell me the specifics!* Ok... 62 | - `microsoft/dotnet:2-sdk` for developing any netcore app 63 | - `microsoft/dotnet:2-runtime` as a production base for non-aspnetcore apps 64 | - `microsoft/dotnet:2-aspnetcore-runtime` as a production base for aspnetcore apps 65 | - *I'm upgrading 1.X/2.0 to 2.1+* 66 | - [ ] TODO upgrade notes 67 | - [ ] TODO link announcement 68 | - [ ] TODO - rework course files to use 2.1 69 | - [ ] TODO other big 2.1 changes 70 | - [ ] Review issues https://github.com/dotnet/dotnet-docker/issues/504 71 | - [ ] Update 2.1 Alpine images to be based on to latest https://github.com/dotnet/dotnet-docker/issues/488 72 | - [ ] Add arm32v7 2.1-aspnetcore-runtime image https://github.com/dotnet/dotnet-docker/issues/480 73 | - [ ] bionic image 74 | - [ ] 2.1 RC1 images https://hub.docker.com/r/microsoft/dotnet-nightly/ 75 | 76 | ### 2.0.0 RTM notes 77 | 78 | All branches in this repository have been updated for `2.0.0 RTM`. [Issue #3](https://github.com/g0t4/aspnetcore-generator-api/issues/3) 79 | 80 | If you want to use a future release: 81 | - Update `global.json` to appropriate sdk version. 82 | - Update `csproj` files based on `dotnet new webapi` and `dotnet new xunit` templates. 83 | - Address changes to app code. 84 | 85 | If a future release comes out and you don't want to update, change Dockerfile tags to explicitly reference `2.0.0`, i.e. 86 | - `microsoft/dotnet:2.0.0-sdk` instead of `microsoft/dotnet:2-sdk` 87 | - `microsoft/aspnetcore:2.0.0` instead of `microsoft/aspnetcore:2` 88 | - `microsoft/aspnetcore-build:2.0.0` instead of `microsoft/aspnetcore-build:2` 89 | 90 | If you want to use a pre-release version use the `-nightly` repos, i.e. 91 | - `microsoft/dotnet-nightly` instead of `microsoft/dotnet` 92 | 93 | Announcements related to this course, since publishing: 94 | - During the previews of .NET Core 2.0, Debian Stretch was released. Both Stretch (v9) and Jessie (v8) images are available. As of .NET Core 2.0 RTM Stretch is now used in the multi-architecture tags. And, Stretch is now the default for the lifespan of .NET Core 2.x releases. https://github.com/dotnet/announcements/issues/16 95 | - microsoft/dotnet & microsoft/dotnet-nightly image tags are now visually grouped by OS & CPU architecture https://github.com/dotnet/announcements/issues/27 96 | - dotnet restore is now an implicit command, i.e. when you run dotnet build it will perform a restore if needed. That said, `dotnet restore` is still worthwhile to explicitly control when package restore occurs, for example to optimize the speed of building images as discussed in the courses. https://github.com/dotnet/announcements/issues/23 97 | 98 | ## Resources on Coming Changes 99 | 100 | These are great resources for keeping up to date on what's coming next in .NET Core land: 101 | 102 | - [.NET Announcements](https://github.com/dotnet/Announcements/issues) 103 | - [ASP.NET Announcements](https://github.com/aspnet/Announcements/issues) 104 | - [.NET Docker issues](https://github.com/dotnet/dotnet-docker/issues) 105 | - [Docker for Windows release notes](https://docs.docker.com/docker-for-windows/edge-release-notes/) 106 | - [Docker for Mac release notes](https://docs.docker.com/docker-for-mac/edge-release-notes/) 107 | - [Docker CE release notes](https://docs.docker.com/release-notes/docker-ce/) 108 | -------------------------------------------------------------------------------- /api/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /api/Controllers/GeneratorController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Faker; 7 | using Faker.Extensions; 8 | 9 | namespace api.Controllers 10 | { 11 | // Just use action name as route 12 | [Route("[action]")] 13 | public class GenerateController : Controller 14 | { 15 | [HttpGet] 16 | public IEnumerable Names(Range range) 17 | => range.Of(Name.FullName); 18 | 19 | [HttpGet] 20 | public IEnumerable PhoneNumbers(Range range) 21 | => range.Of(Phone.Number); 22 | 23 | [HttpGet] 24 | public IEnumerable Numbers(Range range) 25 | => range.Of(RandomNumber.Next); 26 | 27 | [HttpGet] 28 | public IEnumerable Companies(Range range) 29 | => range.Of(Company.Name); 30 | 31 | [HttpGet] 32 | public IEnumerable Paragraphs(Range range) 33 | => range.Of(() => Lorem.Paragraph(3)); 34 | 35 | [HttpGet] 36 | public IEnumerable CatchPhrases(Range range) 37 | => range.Of(Company.CatchPhrase); 38 | 39 | [HttpGet] 40 | public IEnumerable Marketing(Range range) 41 | => range.Of(Company.BS); 42 | 43 | [HttpGet] 44 | public IEnumerable Emails(Range range) 45 | => range.Of(Internet.Email); 46 | 47 | [HttpGet] 48 | public IEnumerable Domains(Range range) 49 | => range.Of(Internet.DomainName); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /api/Controllers/Range.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using Faker.Extensions; 5 | 6 | namespace api.Controllers 7 | { 8 | public class Range 9 | { 10 | public int Count { get; set; } = 10; 11 | public bool Sort { get; set; } = false; 12 | 13 | public IEnumerable Of(Func generateItem) 14 | => Count.Times(i => generateItem()) 15 | .OrderBy(n => Sort ? n : default(TItem)); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /api/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace api 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | BuildWebHost(args).Run(); 18 | } 19 | 20 | public static IWebHost BuildWebHost(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup() 23 | .Build(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /api/Startup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Builder; 6 | using Microsoft.AspNetCore.Hosting; 7 | using Microsoft.AspNetCore.Rewrite; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.DependencyInjection; 10 | using Microsoft.Extensions.Logging; 11 | using Microsoft.Extensions.Options; 12 | using Swashbuckle.AspNetCore.Swagger; 13 | 14 | namespace api 15 | { 16 | public class Startup 17 | { 18 | public Startup(IConfiguration configuration) 19 | { 20 | Configuration = configuration; 21 | } 22 | 23 | public IConfiguration Configuration { get; } 24 | 25 | // This method gets called by the runtime. Use this method to add services to the container. 26 | public void ConfigureServices(IServiceCollection services) 27 | { 28 | services.AddMvc() 29 | .AddXmlSerializerFormatters(); 30 | 31 | services.AddSwaggerGen(c => 32 | { 33 | c.SwaggerDoc("v1", new Info { Title = "Generate Random Data API", Version = "v1" }); 34 | }); 35 | } 36 | 37 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 38 | public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 39 | { 40 | app.UseMvc(); 41 | 42 | app.UseSwagger(); 43 | app.UseSwaggerUI(c => 44 | { 45 | c.SwaggerEndpoint("/swagger/v1/swagger.json", "Generate Random Data API V1"); 46 | }); 47 | 48 | var redirectRootToSwagger = new RewriteOptions() 49 | .AddRedirect("^$", "swagger"); 50 | app.UseRewriter(redirectRootToSwagger); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /api/api.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netcoreapp2.0 4 | aspnet-api-7C2DEA3B-3FE0-4E9C-A3C6-809300076350 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /api/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /api/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /api/global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "2.0.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /generator.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26124.0 5 | MinimumVisualStudioVersion = 15.0.26124.0 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "api", "api\api.csproj", "{395194DA-84B9-4E9B-BA03-F4D091155E37}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 22 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|Any CPU.Build.0 = Debug|Any CPU 23 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.ActiveCfg = Debug|x64 24 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x64.Build.0 = Debug|x64 25 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.ActiveCfg = Debug|x86 26 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Debug|x86.Build.0 = Debug|x86 27 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|Any CPU.ActiveCfg = Release|Any CPU 28 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|Any CPU.Build.0 = Release|Any CPU 29 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.ActiveCfg = Release|x64 30 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x64.Build.0 = Release|x64 31 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.ActiveCfg = Release|x86 32 | {395194DA-84B9-4E9B-BA03-F4D091155E37}.Release|x86.Build.0 = Release|x86 33 | EndGlobalSection 34 | EndGlobal 35 | --------------------------------------------------------------------------------