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