From e95f6ef0455d842c8f969c8477ed649dbbf4dd12 Mon Sep 17 00:00:00 2001 From: BillWagner Date: Wed, 12 Apr 2017 15:55:38 -0400 Subject: [PATCH 1/8] interim checkin about to try an experiment. --- .../Catalog.WebForms/docker-compose.vs.debug.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml index 4485cb1de..83b7bfe55 100644 --- a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml +++ b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml @@ -11,3 +11,17 @@ services: - ~\msvsmon:C:\msvsmon:ro labels: - "com.microsoft.visualstudio.targetoperatingsystem=windows" + + catalog.api: + image: eshop/catalog.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ../../Services/Catalog/Catalog.API:C:\app + - ~\msvsmon:C:\msvsmon:ro + entrypoint: tail -f /dev/null + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=windows" From 0b15148306ecba027f4a7a57f7f8c266a9b4312d Mon Sep 17 00:00:00 2001 From: BillWagner Date: Wed, 12 Apr 2017 17:09:21 -0400 Subject: [PATCH 2/8] interim checkin --- src/Web/Catalog.WebForms/docker-compose.vs.debug.yml | 3 +-- src/Web/Catalog.WebForms/docker-compose.yml | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml index 83b7bfe55..b93037737 100644 --- a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml +++ b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml @@ -2,7 +2,7 @@ version: '2.1' services: catalog.webforms: - image: catalog.webforms:dev + image: eshop/catalog.webforms:dev build: args: source: ${DOCKER_BUILD_SOURCE} @@ -22,6 +22,5 @@ services: volumes: - ../../Services/Catalog/Catalog.API:C:\app - ~\msvsmon:C:\msvsmon:ro - entrypoint: tail -f /dev/null labels: - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/src/Web/Catalog.WebForms/docker-compose.yml b/src/Web/Catalog.WebForms/docker-compose.yml index 4eb18f0d2..99cbd7914 100644 --- a/src/Web/Catalog.WebForms/docker-compose.yml +++ b/src/Web/Catalog.WebForms/docker-compose.yml @@ -2,7 +2,7 @@ version: '2.1' services: catalog.webforms: - image: catalog.webforms + image: eshop/catalog.webforms build: context: .\Catalog.WebForms dockerfile: Dockerfile @@ -12,8 +12,8 @@ services: catalog.api: image: eshop/catalog.api build: - context: ..\..\Services\Catalog\Catalog.API - dockerfile: Dockerfile.windows + context: ../../Services/Catalog/Catalog.API + dockerfile: Dockerfile.nanowin depends_on: - sql.data From c160af2179004a544dab47f95fce8f1c895aecdb Mon Sep 17 00:00:00 2001 From: BillWagner Date: Wed, 12 Apr 2017 17:13:31 -0400 Subject: [PATCH 3/8] catalog loads in Docker But, its fake data. --- .../Catalog.WebForms/docker-compose.override.yml | 16 ---------------- .../Catalog.WebForms/docker-compose.vs.debug.yml | 13 ------------- src/Web/Catalog.WebForms/docker-compose.yml | 13 +------------ 3 files changed, 1 insertion(+), 41 deletions(-) diff --git a/src/Web/Catalog.WebForms/docker-compose.override.yml b/src/Web/Catalog.WebForms/docker-compose.override.yml index dc74370aa..8f30bad88 100644 --- a/src/Web/Catalog.WebForms/docker-compose.override.yml +++ b/src/Web/Catalog.WebForms/docker-compose.override.yml @@ -1,22 +1,6 @@ version: '2.1' services: - sql.data: - environment: - - SA_PASSWORD=Pass@word - - ACCEPT_EULA=Y - ports: - - "5433:1433" - - catalog.api: - environment: - - ASPNETCORE_ENVIRONMENT=Development - - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word - #- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. - - ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. - ports: - - "5101:5101" - catalog.webforms: ports: - "80:80" diff --git a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml index b93037737..07dce6af4 100644 --- a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml +++ b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml @@ -11,16 +11,3 @@ services: - ~\msvsmon:C:\msvsmon:ro labels: - "com.microsoft.visualstudio.targetoperatingsystem=windows" - - catalog.api: - image: eshop/catalog.api:dev - build: - args: - source: ${DOCKER_BUILD_SOURCE} - environment: - - DOTNET_USE_POLLING_FILE_WATCHER=1 - volumes: - - ../../Services/Catalog/Catalog.API:C:\app - - ~\msvsmon:C:\msvsmon:ro - labels: - - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/src/Web/Catalog.WebForms/docker-compose.yml b/src/Web/Catalog.WebForms/docker-compose.yml index 99cbd7914..bcfeaa5e5 100644 --- a/src/Web/Catalog.WebForms/docker-compose.yml +++ b/src/Web/Catalog.WebForms/docker-compose.yml @@ -6,16 +6,5 @@ services: build: context: .\Catalog.WebForms dockerfile: Dockerfile - depends_on: - - catalog.api - catalog.api: - image: eshop/catalog.api - build: - context: ../../Services/Catalog/Catalog.API - dockerfile: Dockerfile.nanowin - depends_on: - - sql.data - - sql.data: - image: microsoft/mssql-server-windows + \ No newline at end of file From 4597b0336cca7f8e3332490c5d55f492fcb695d2 Mon Sep 17 00:00:00 2001 From: BillWagner Date: Thu, 13 Apr 2017 09:47:10 -0400 Subject: [PATCH 4/8] Revert "catalog loads in Docker" This reverts commit c160af2179004a544dab47f95fce8f1c895aecdb. --- .../Catalog.WebForms/docker-compose.override.yml | 16 ++++++++++++++++ .../Catalog.WebForms/docker-compose.vs.debug.yml | 13 +++++++++++++ src/Web/Catalog.WebForms/docker-compose.yml | 13 ++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/Web/Catalog.WebForms/docker-compose.override.yml b/src/Web/Catalog.WebForms/docker-compose.override.yml index 8f30bad88..dc74370aa 100644 --- a/src/Web/Catalog.WebForms/docker-compose.override.yml +++ b/src/Web/Catalog.WebForms/docker-compose.override.yml @@ -1,6 +1,22 @@ version: '2.1' services: + sql.data: + environment: + - SA_PASSWORD=Pass@word + - ACCEPT_EULA=Y + ports: + - "5433:1433" + + catalog.api: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word + #- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. + - ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. + ports: + - "5101:5101" + catalog.webforms: ports: - "80:80" diff --git a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml index 07dce6af4..b93037737 100644 --- a/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml +++ b/src/Web/Catalog.WebForms/docker-compose.vs.debug.yml @@ -11,3 +11,16 @@ services: - ~\msvsmon:C:\msvsmon:ro labels: - "com.microsoft.visualstudio.targetoperatingsystem=windows" + + catalog.api: + image: eshop/catalog.api:dev + build: + args: + source: ${DOCKER_BUILD_SOURCE} + environment: + - DOTNET_USE_POLLING_FILE_WATCHER=1 + volumes: + - ../../Services/Catalog/Catalog.API:C:\app + - ~\msvsmon:C:\msvsmon:ro + labels: + - "com.microsoft.visualstudio.targetoperatingsystem=windows" diff --git a/src/Web/Catalog.WebForms/docker-compose.yml b/src/Web/Catalog.WebForms/docker-compose.yml index bcfeaa5e5..99cbd7914 100644 --- a/src/Web/Catalog.WebForms/docker-compose.yml +++ b/src/Web/Catalog.WebForms/docker-compose.yml @@ -6,5 +6,16 @@ services: build: context: .\Catalog.WebForms dockerfile: Dockerfile + depends_on: + - catalog.api - \ No newline at end of file + catalog.api: + image: eshop/catalog.api + build: + context: ../../Services/Catalog/Catalog.API + dockerfile: Dockerfile.nanowin + depends_on: + - sql.data + + sql.data: + image: microsoft/mssql-server-windows From 3f01246404f9d08a7cf365856e30e557c0c615ba Mon Sep 17 00:00:00 2001 From: BillWagner Date: Thu, 13 Apr 2017 10:19:45 -0400 Subject: [PATCH 5/8] switch to the SDK version of nanoserver This now works from the command line. But, sa password is wrong. --- src/Services/Catalog/Catalog.API/Dockerfile.nanowin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Services/Catalog/Catalog.API/Dockerfile.nanowin b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin index c40d3a4d0..10d8d2ffe 100644 --- a/src/Services/Catalog/Catalog.API/Dockerfile.nanowin +++ b/src/Services/Catalog/Catalog.API/Dockerfile.nanowin @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:1.1-runtime-nanoserver +FROM microsoft/dotnet:1.1-sdk-nanoserver ARG source WORKDIR /app RUN set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord From b455624909c88f6601de8bd8f9abaa8c8282bc36 Mon Sep 17 00:00:00 2001 From: BillWagner Date: Fri, 14 Apr 2017 16:57:03 -0400 Subject: [PATCH 6/8] loading in docker the IP for the catalog service is wrong, but other than that, it's working. --- .../Catalog.WebForms/Catalog.WebForms.csproj | 3 + .../Modules/AutoFacHttpModule.cs | 6 +- .../Services/CatalogService.cs | 14 +- .../Services/RequestProvider.cs | 174 ++++++++++++++++++ .../Catalog.WebForms/Web.Debug.config | 1 + .../Catalog.WebForms/Web.config | 2 +- .../docker-compose.override.yml | 5 - src/Web/Catalog.WebForms/docker-compose.yml | 5 + 8 files changed, 196 insertions(+), 14 deletions(-) create mode 100644 src/Web/Catalog.WebForms/Catalog.WebForms/Services/RequestProvider.cs diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj b/src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj index 40bd7bb2a..e71028818 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Catalog.WebForms.csproj @@ -57,6 +57,8 @@ + + @@ -415,6 +417,7 @@ + Site.Master ASPXCodeBehind diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Modules/AutoFacHttpModule.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Modules/AutoFacHttpModule.cs index 471edbd18..53f9c9840 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Modules/AutoFacHttpModule.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Modules/AutoFacHttpModule.cs @@ -1,5 +1,6 @@ using Autofac; using eShopOnContainers.Core.Services.Catalog; +using eShopOnContainers.Core.Services.RequestProvider; using System; using System.Collections.Generic; using System.Linq; @@ -34,8 +35,11 @@ namespace eShopOnContainers.Catalog.WebForms.Modules } else { - builder.RegisterType() + builder.RegisterType() .As(); + + builder.RegisterType() + .As(); } var container = builder.Build(); return container; diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs index f77eb11d4..0a6339b3a 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs @@ -24,7 +24,7 @@ namespace eShopOnContainers.Core.Services.Catalog try { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = string.Format("api/v1/catalog/items/type/{0}/brand/{1}", catalogTypeId, catalogBrandId); @@ -49,7 +49,7 @@ namespace eShopOnContainers.Core.Services.Catalog try { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = "api/v1/catalog/items"; @@ -83,7 +83,7 @@ namespace eShopOnContainers.Core.Services.Catalog try { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = "api/v1/catalog/catalogbrands"; @@ -108,7 +108,7 @@ namespace eShopOnContainers.Core.Services.Catalog try { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = "api/v1/catalog/catalogtypes"; @@ -131,7 +131,7 @@ namespace eShopOnContainers.Core.Services.Catalog public Task DeleteCatalogItemAsync(string catalogItemId) { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = $"api/v1/catalog/{catalogItemId}"; @@ -143,7 +143,7 @@ namespace eShopOnContainers.Core.Services.Catalog public Task UpdateCatalogItemAsync(CatalogItem item) { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = "api/v1/catalog/edit"; @@ -155,7 +155,7 @@ namespace eShopOnContainers.Core.Services.Catalog public Task CreateCatalogItemAsync(CatalogItem item) { // TODO: - UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */); + UriBuilder builder = new UriBuilder("http://catalog.api:5101"); builder.Path = "api/v1/catalog/create"; diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/RequestProvider.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/RequestProvider.cs new file mode 100644 index 000000000..a35417eaa --- /dev/null +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/RequestProvider.cs @@ -0,0 +1,174 @@ +using eShopOnContainers.Core.Exceptions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Serialization; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading.Tasks; +using System; + +// Taken from https://raw.githubusercontent.com/dotnet/eShopOnContainers/dev/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs +// TODO: DRY This + +namespace eShopOnContainers.Core.Services.RequestProvider +{ + public class RequestProvider : IRequestProvider + { + private readonly JsonSerializerSettings _serializerSettings; + + public RequestProvider() + { + _serializerSettings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + DateTimeZoneHandling = DateTimeZoneHandling.Utc, + NullValueHandling = NullValueHandling.Ignore + }; + + _serializerSettings.Converters.Add(new StringEnumConverter()); + } + + public async Task GetAsync(string uri, string token = "") + { + HttpClient httpClient = CreateHttpClient(token); + HttpResponseMessage response = await httpClient.GetAsync(uri); + + await HandleResponse(response); + + string serialized = await response.Content.ReadAsStringAsync(); + + TResult result = await Task.Run(() => + JsonConvert.DeserializeObject(serialized, _serializerSettings)); + + return result; + } + + public async Task PostAsync(string uri, TResult data, string token = "", string header = "") + { + HttpClient httpClient = CreateHttpClient(token); + + if (!string.IsNullOrEmpty(header)) + { + AddHeaderParameter(httpClient, header); + } + + var content = new StringContent(JsonConvert.SerializeObject(data)); + content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + HttpResponseMessage response = await httpClient.PostAsync(uri, content); + + await HandleResponse(response); + + string serialized = await response.Content.ReadAsStringAsync(); + + TResult result = await Task.Run(() => + JsonConvert.DeserializeObject(serialized, _serializerSettings)); + + return result; + } + + public Task PostAsync(string uri, TResult data, string token = "") + { + return PostAsync(uri, data, token); + } + + public async Task PostAsync(string uri, TRequest data, string token = "") + { + HttpClient httpClient = CreateHttpClient(token); + string serialized = await Task.Run(() => JsonConvert.SerializeObject(data, _serializerSettings)); + var content = new StringContent(serialized, Encoding.UTF8, "application/json"); + HttpResponseMessage response = await httpClient.PostAsync(uri, content); + + await HandleResponse(response); + + string responseData = await response.Content.ReadAsStringAsync(); + + return await Task.Run(() => JsonConvert.DeserializeObject(responseData, _serializerSettings)); + } + + public Task PutAsync(string uri, TResult data, string token = "") + { + return PutAsync(uri, data, token); + } + + public async Task PutAsync(string uri, TRequest data, string token = "") + { + HttpClient httpClient = CreateHttpClient(token); + string serialized = await Task.Run(() => JsonConvert.SerializeObject(data, _serializerSettings)); + HttpResponseMessage response = await httpClient.PutAsync(uri, new StringContent(serialized, Encoding.UTF8, "application/json")); + + await HandleResponse(response); + + string responseData = await response.Content.ReadAsStringAsync(); + + return await Task.Run(() => JsonConvert.DeserializeObject(responseData, _serializerSettings)); + } + + public async Task DeleteAsync(string uri, string token = "") + { + HttpClient httpClient = CreateHttpClient(token); + + await httpClient.DeleteAsync(uri); + } + + private HttpClient CreateHttpClient(string token = "") + { + var httpClient = new HttpClient(); + + httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + + if (!string.IsNullOrEmpty(token)) + { + httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); + } + + return httpClient; + } + + private void AddHeaderParameter(HttpClient httpClient, string parameter) + { + if (httpClient == null) + return; + + if (string.IsNullOrEmpty(parameter)) + return; + + httpClient.DefaultRequestHeaders.Add(parameter, Guid.NewGuid().ToString()); + } + + private async Task HandleResponse(HttpResponseMessage response) + { + if (!response.IsSuccessStatusCode) + { + var content = await response.Content.ReadAsStringAsync(); + + if (response.StatusCode == HttpStatusCode.Forbidden + || response.StatusCode == HttpStatusCode.Unauthorized) + { + throw new ServiceAuthenticationException(content); + } + + throw new HttpRequestException(content); + } + } + } +} + +// Taken from: https://raw.githubusercontent.com/dotnet/eShopOnContainers/dev/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Exceptions/ServiceAuthenticationException.cs +namespace eShopOnContainers.Core.Exceptions +{ + public class ServiceAuthenticationException : Exception + { + public string Content { get; } + + public ServiceAuthenticationException() + { + } + + public ServiceAuthenticationException(string content) + { + Content = content; + } + } +} diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.Debug.config b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.Debug.config index fae9cfefa..15c33a329 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.Debug.config +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.Debug.config @@ -26,5 +26,6 @@ --> + \ No newline at end of file diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config index 46d4ab24e..30a2748b0 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config @@ -9,7 +9,7 @@
- + diff --git a/src/Web/Catalog.WebForms/docker-compose.override.yml b/src/Web/Catalog.WebForms/docker-compose.override.yml index dc74370aa..76aa2481d 100644 --- a/src/Web/Catalog.WebForms/docker-compose.override.yml +++ b/src/Web/Catalog.WebForms/docker-compose.override.yml @@ -20,8 +20,3 @@ services: catalog.webforms: ports: - "80:80" - -networks: - default: - external: - name: nat diff --git a/src/Web/Catalog.WebForms/docker-compose.yml b/src/Web/Catalog.WebForms/docker-compose.yml index 99cbd7914..7c13247b1 100644 --- a/src/Web/Catalog.WebForms/docker-compose.yml +++ b/src/Web/Catalog.WebForms/docker-compose.yml @@ -19,3 +19,8 @@ services: sql.data: image: microsoft/mssql-server-windows + +networks: + default: + external: + name: nat From 7daf4c045572aa4dafccdde1e4d698ec2ed73126 Mon Sep 17 00:00:00 2001 From: BillWagner Date: Fri, 14 Apr 2017 17:31:13 -0400 Subject: [PATCH 7/8] set the port correctly Now, we're cooking --- src/Web/Catalog.WebForms/docker-compose.override.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Web/Catalog.WebForms/docker-compose.override.yml b/src/Web/Catalog.WebForms/docker-compose.override.yml index 76aa2481d..fbf3b39ae 100644 --- a/src/Web/Catalog.WebForms/docker-compose.override.yml +++ b/src/Web/Catalog.WebForms/docker-compose.override.yml @@ -11,6 +11,7 @@ services: catalog.api: environment: - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=http://0.0.0.0:5101 - ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word #- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105. - ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105. From 7c559dd298acbc4df168d5e3ae760195a9b9dbf2 Mon Sep 17 00:00:00 2001 From: BillWagner Date: Mon, 17 Apr 2017 13:36:57 -0400 Subject: [PATCH 8/8] read catalog API from web config Instead of hard coding. --- .../Services/CatalogService.cs | 28 +++++++++---------- .../Catalog.WebForms/Web.config | 1 + 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs index 0a6339b3a..cc22a37c4 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Services/CatalogService.cs @@ -23,8 +23,8 @@ namespace eShopOnContainers.Core.Services.Catalog { try { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = string.Format("api/v1/catalog/items/type/{0}/brand/{1}", catalogTypeId, catalogBrandId); @@ -48,8 +48,8 @@ namespace eShopOnContainers.Core.Services.Catalog { try { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = "api/v1/catalog/items"; @@ -82,8 +82,8 @@ namespace eShopOnContainers.Core.Services.Catalog { try { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = "api/v1/catalog/catalogbrands"; @@ -107,8 +107,8 @@ namespace eShopOnContainers.Core.Services.Catalog { try { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = "api/v1/catalog/catalogtypes"; @@ -130,8 +130,8 @@ namespace eShopOnContainers.Core.Services.Catalog public Task DeleteCatalogItemAsync(string catalogItemId) { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = $"api/v1/catalog/{catalogItemId}"; @@ -142,8 +142,8 @@ namespace eShopOnContainers.Core.Services.Catalog public Task UpdateCatalogItemAsync(CatalogItem item) { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = "api/v1/catalog/edit"; @@ -154,8 +154,8 @@ namespace eShopOnContainers.Core.Services.Catalog public Task CreateCatalogItemAsync(CatalogItem item) { - // TODO: - UriBuilder builder = new UriBuilder("http://catalog.api:5101"); + var baseURl = System.Configuration.ConfigurationManager.AppSettings["CatalogURL"]; + UriBuilder builder = new UriBuilder(baseURl); builder.Path = "api/v1/catalog/create"; diff --git a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config index 30a2748b0..0e2f9205e 100644 --- a/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config +++ b/src/Web/Catalog.WebForms/Catalog.WebForms/Web.config @@ -10,6 +10,7 @@ +