From f934cca17b956905f7b6e929d1f8bea4122fc459 Mon Sep 17 00:00:00 2001
From: Lucca Santangelo <luccasant95@gmail.com>
Date: Sun, 25 Oct 2020 12:21:55 -0300
Subject: [PATCH] docker

---
 Tsi1.Api/Dockerfile                |  2 +-
 Tsi1.Api/Tsi1.Api/Startup.cs       |  9 +++++++--
 Tsi1.Api/Tsi1.Api/appsettings.json | 13 ++++++++++---
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/Tsi1.Api/Dockerfile b/Tsi1.Api/Dockerfile
index bf550e5..63e9ca8 100644
--- a/Tsi1.Api/Dockerfile
+++ b/Tsi1.Api/Dockerfile
@@ -1,7 +1,7 @@
 # https://hub.docker.com/_/microsoft-dotnet-core
 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
 WORKDIR /app
-EXPOSE 443
+EXPOSE 5000
 
 # copy csproj and restore as distinct layers
 WORKDIR /src
diff --git a/Tsi1.Api/Tsi1.Api/Startup.cs b/Tsi1.Api/Tsi1.Api/Startup.cs
index b1538d3..6d81c78 100644
--- a/Tsi1.Api/Tsi1.Api/Startup.cs
+++ b/Tsi1.Api/Tsi1.Api/Startup.cs
@@ -40,10 +40,15 @@ namespace Tsi1.Api
         {
             services.AddControllers();
 
-            services.AddDbContext<Tsi1Context>(x => x.UseNpgsql(Configuration.GetConnectionString("PostgreSql")));
+            var isElasticCloud = bool.Parse(Configuration.GetSection("IsElasticCloud").Value);
+
+            var postgreSqlSection = isElasticCloud ? "PostgreSqlCloud" : "PostgreSql";
+            var mongoDbSection = isElasticCloud ? "Tsi1DatabaseSettingsCloud" : "Tsi1DatabaseSettings";
+
+            services.AddDbContext<Tsi1Context>(x => x.UseNpgsql(Configuration.GetConnectionString(postgreSqlSection)));
 
             services.Configure<Tsi1DatabaseSettings>(
-                Configuration.GetSection(nameof(Tsi1DatabaseSettings)));
+                Configuration.GetSection(mongoDbSection));
 
             services.AddSingleton<ITsi1DatabaseSettings>(sp =>
                 sp.GetRequiredService<IOptions<Tsi1DatabaseSettings>>().Value);
diff --git a/Tsi1.Api/Tsi1.Api/appsettings.json b/Tsi1.Api/Tsi1.Api/appsettings.json
index e637ca6..a12bc5f 100644
--- a/Tsi1.Api/Tsi1.Api/appsettings.json
+++ b/Tsi1.Api/Tsi1.Api/appsettings.json
@@ -1,16 +1,23 @@
 {
+  "IsElasticCloud": true,
   "ConnectionStrings": {
-    "PostgreSql": "Host=localhost;Database=tsi1;Username=postgres;Password=111111"
+    "PostgreSql": "Host=localhost;Database=tsi1;Username=postgres;Password=111111",
+    "PostgreSqlCloud": "Host=postgres;Database=tsi1;Username=postgres;Password=postgres"
   },
   "Tsi1DatabaseSettings": {
     "Tsi1CollectionName": "Messages",
     "ConnectionString": "mongodb://localhost:27017",
     "DatabaseName": "Tsi1Db"
   },
+  "Tsi1DatabaseSettingsCloud": {
+    "Tsi1CollectionName": "Messages",
+    "ConnectionString": "mongodb://mongo:27017",
+    "DatabaseName": "Tsi1Db"
+  },
   "jwtTokenConfig": {
     "secret": "1234567890123456789",
-    "issuer": "https://localhost:44363",
-    "audience": "https://localhost:44363",
+    "issuer": "https://localhost:5000",
+    "audience": "https://localhost:5000",
     "accessTokenExpiration": 20,
     "refreshTokenExpiration": 60
   },
-- 
GitLab