Add project files.
This commit is contained in:
		
							
								
								
									
										25
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					**/.classpath
 | 
				
			||||||
 | 
					**/.dockerignore
 | 
				
			||||||
 | 
					**/.env
 | 
				
			||||||
 | 
					**/.git
 | 
				
			||||||
 | 
					**/.gitignore
 | 
				
			||||||
 | 
					**/.project
 | 
				
			||||||
 | 
					**/.settings
 | 
				
			||||||
 | 
					**/.toolstarget
 | 
				
			||||||
 | 
					**/.vs
 | 
				
			||||||
 | 
					**/.vscode
 | 
				
			||||||
 | 
					**/*.*proj.user
 | 
				
			||||||
 | 
					**/*.dbmdl
 | 
				
			||||||
 | 
					**/*.jfm
 | 
				
			||||||
 | 
					**/azds.yaml
 | 
				
			||||||
 | 
					**/bin
 | 
				
			||||||
 | 
					**/charts
 | 
				
			||||||
 | 
					**/docker-compose*
 | 
				
			||||||
 | 
					**/Dockerfile*
 | 
				
			||||||
 | 
					**/node_modules
 | 
				
			||||||
 | 
					**/npm-debug.log
 | 
				
			||||||
 | 
					**/obj
 | 
				
			||||||
 | 
					**/secrets.dev.yaml
 | 
				
			||||||
 | 
					**/values.dev.yaml
 | 
				
			||||||
 | 
					LICENSE
 | 
				
			||||||
 | 
					README.md
 | 
				
			||||||
							
								
								
									
										45
									
								
								Controllers/PokemonController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								Controllers/PokemonController.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					using Microsoft.AspNetCore.Mvc;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
 | 
					using PokeApiNet;
 | 
				
			||||||
 | 
					using Pokespearean.Models.Generic;
 | 
				
			||||||
 | 
					using Pokespearean.Models.Pokemon;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Pokespearean.Controllers
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						[ApiController]
 | 
				
			||||||
 | 
						[Route("[controller]")]
 | 
				
			||||||
 | 
						public class PokemonController : ControllerBase
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							private readonly ILogger<PokemonController> _logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public PokemonController(ILogger<PokemonController> logger)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								_logger = logger;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[Route("{pokemon}")]
 | 
				
			||||||
 | 
							public async Task<IActionResult> Get([FromRoute] string pokemon = "ho-oh")
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var result = new WebResult();
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									var client = new PokeApiClient();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									var pokedex = await client.GetResourceAsync<Pokedex>(pokemon);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									return Ok(new PokeResult
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										Name = pokedex.Name,
 | 
				
			||||||
 | 
										Description = pokedex.Descriptions.FirstOrDefault(d => d.Language.Name == "en").Description
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch (Exception ex)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									return BadRequest(result.Invalidate(ex.Message, ex));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										26
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
 | 
				
			||||||
 | 
					#For more information, please see https://aka.ms/containercompat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
 | 
				
			||||||
 | 
					USER 1001
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					EXPOSE 80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
 | 
				
			||||||
 | 
					WORKDIR /src
 | 
				
			||||||
 | 
					COPY ["Pokespearean.csproj", ""]
 | 
				
			||||||
 | 
					COPY ["../Pokespearean.Models/Pokespearean.Models.csproj", "../Pokespearean.Models/"]
 | 
				
			||||||
 | 
					RUN dotnet restore "./Pokespearean.csproj"
 | 
				
			||||||
 | 
					COPY . .
 | 
				
			||||||
 | 
					WORKDIR "/src/."
 | 
				
			||||||
 | 
					RUN dotnet build "Pokespearean.csproj" -c Release -o /app/build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM build AS publish
 | 
				
			||||||
 | 
					RUN dotnet publish "Pokespearean.csproj" -c Release -o /app/publish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM base AS final
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					COPY --from=publish /app/publish .
 | 
				
			||||||
 | 
					ENTRYPOINT ["dotnet", "Pokespearean.dll"]
 | 
				
			||||||
							
								
								
									
										19
									
								
								Pokespearean.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Pokespearean.csproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					<Project Sdk="Microsoft.NET.Sdk.Web">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <TargetFramework>net5.0</TargetFramework>
 | 
				
			||||||
 | 
					    <DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
 | 
				
			||||||
 | 
					    <DockerfileContext>.</DockerfileContext>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <PackageReference Include="Flurl.Http" Version="3.0.0" />
 | 
				
			||||||
 | 
					    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.9" />
 | 
				
			||||||
 | 
					    <PackageReference Include="PokeApiNet" Version="3.0.0" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ProjectReference Include="..\Pokespearean.Models\Pokespearean.Models.csproj" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
							
								
								
									
										31
									
								
								Pokespearean.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								Pokespearean.sln
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
 | 
					# Visual Studio Version 16
 | 
				
			||||||
 | 
					VisualStudioVersion = 16.0.30711.63
 | 
				
			||||||
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pokespearean", "Pokespearean.csproj", "{B9920ADA-7244-4E6A-8935-4EE1D66273D7}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pokespearean.Models", "..\Pokespearean.Models\Pokespearean.Models.csproj", "{B62A4320-ED4F-4B29-9CE7-56EC1EBA4A26}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Debug|Any CPU = Debug|Any CPU
 | 
				
			||||||
 | 
							Release|Any CPU = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{B9920ADA-7244-4E6A-8935-4EE1D66273D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{B9920ADA-7244-4E6A-8935-4EE1D66273D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{B9920ADA-7244-4E6A-8935-4EE1D66273D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{B9920ADA-7244-4E6A-8935-4EE1D66273D7}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
							{B62A4320-ED4F-4B29-9CE7-56EC1EBA4A26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{B62A4320-ED4F-4B29-9CE7-56EC1EBA4A26}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{B62A4320-ED4F-4B29-9CE7-56EC1EBA4A26}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{B62A4320-ED4F-4B29-9CE7-56EC1EBA4A26}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ExtensibilityGlobals) = postSolution
 | 
				
			||||||
 | 
							SolutionGuid = {41FC3C36-F6DC-430D-9C13-9CBA0D981604}
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										26
									
								
								Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								Program.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					using Microsoft.AspNetCore.Hosting;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Configuration;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Hosting;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Pokespearean
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public class Program
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public static void Main(string[] args)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								CreateHostBuilder(args).Build().Run();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public static IHostBuilder CreateHostBuilder(string[] args) =>
 | 
				
			||||||
 | 
									Host.CreateDefaultBuilder(args)
 | 
				
			||||||
 | 
											.ConfigureWebHostDefaults(webBuilder =>
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												webBuilder.UseStartup<Startup>();
 | 
				
			||||||
 | 
											});
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Properties/launchSettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "iisSettings": {
 | 
				
			||||||
 | 
					    "windowsAuthentication": false,
 | 
				
			||||||
 | 
					    "anonymousAuthentication": true,
 | 
				
			||||||
 | 
					    "iisExpress": {
 | 
				
			||||||
 | 
					      "applicationUrl": "http://localhost:5000",
 | 
				
			||||||
 | 
					      "sslPort": 0
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "$schema": "http://json.schemastore.org/launchsettings.json",
 | 
				
			||||||
 | 
					  "profiles": {
 | 
				
			||||||
 | 
					    "IIS Express": {
 | 
				
			||||||
 | 
					      "commandName": "IISExpress",
 | 
				
			||||||
 | 
					      "launchBrowser": true,
 | 
				
			||||||
 | 
					      "environmentVariables": {
 | 
				
			||||||
 | 
					        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "Pokespearean": {
 | 
				
			||||||
 | 
					      "commandName": "Project",
 | 
				
			||||||
 | 
					      "launchBrowser": true,
 | 
				
			||||||
 | 
					      "launchUrl": "weatherforecast",
 | 
				
			||||||
 | 
					      "environmentVariables": {
 | 
				
			||||||
 | 
					        "ASPNETCORE_ENVIRONMENT": "Development"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dotnetRunMessages": "true",
 | 
				
			||||||
 | 
					      "applicationUrl": "http://localhost:5000"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "Docker": {
 | 
				
			||||||
 | 
					      "commandName": "Docker",
 | 
				
			||||||
 | 
					      "launchBrowser": true,
 | 
				
			||||||
 | 
					      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
 | 
				
			||||||
 | 
					      "publishAllPorts": true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										57
									
								
								Startup.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								Startup.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					using Microsoft.AspNetCore.Builder;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Hosting;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Mvc;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Configuration;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.DependencyInjection;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Hosting;
 | 
				
			||||||
 | 
					using Microsoft.Extensions.Logging;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text.Json;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Pokespearean
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public class Startup
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public Startup(IConfiguration configuration)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								Configuration = configuration;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public IConfiguration Configuration { get; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// This method gets called by the runtime. Use this method to add services to the container.
 | 
				
			||||||
 | 
							public void ConfigureServices(IServiceCollection services)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								services.AddControllers().AddJsonOptions(options =>
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									//options.JsonSerializerOptions.MaxDepth = 0;
 | 
				
			||||||
 | 
									//options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
 | 
				
			||||||
 | 
									//options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
 | 
				
			||||||
 | 
									options.JsonSerializerOptions.IgnoreReadOnlyFields = true;
 | 
				
			||||||
 | 
									options.JsonSerializerOptions.IgnoreReadOnlyProperties = true;
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 | 
				
			||||||
 | 
							public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (env.IsDevelopment())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									app.UseDeveloperExceptionPage();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								app.UseRouting();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								app.UseAuthorization();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								app.UseEndpoints(endpoints =>
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									endpoints.MapControllers();
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								WeatherForecast.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								WeatherForecast.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					using System;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Pokespearean
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public class WeatherForecast
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							public DateTime Date { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public int TemperatureC { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public string Summary { get; set; }
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								appsettings.Development.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "Logging": {
 | 
				
			||||||
 | 
					    "LogLevel": {
 | 
				
			||||||
 | 
					      "Default": "Information",
 | 
				
			||||||
 | 
					      "Microsoft": "Warning",
 | 
				
			||||||
 | 
					      "Microsoft.Hosting.Lifetime": "Information"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								appsettings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								appsettings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "Logging": {
 | 
				
			||||||
 | 
					    "LogLevel": {
 | 
				
			||||||
 | 
					      "Default": "Information",
 | 
				
			||||||
 | 
					      "Microsoft": "Warning",
 | 
				
			||||||
 | 
					      "Microsoft.Hosting.Lifetime": "Information"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "AllowedHosts": "*"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user