Skip to content

Commit e80c5ef

Browse files
committed
Add details view and add marketing scope in mvc project and identity config
1 parent 91de998 commit e80c5ef

9 files changed

Lines changed: 66 additions & 10 deletions

File tree

src/Services/Identity/Identity.API/Configuration/Config.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ public static IEnumerable<Client> GetClients(Dictionary<string,string> clientsUr
108108
IdentityServerConstants.StandardScopes.OfflineAccess,
109109
"orders",
110110
"basket",
111-
"locations"
111+
"locations",
112+
"marketing"
112113
},
113114
}
114115
};

src/Services/Marketing/Marketing.API/Controllers/CampaignsController.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,23 @@
1111
using Microsoft.AspNetCore.Authorization;
1212
using System;
1313
using System.Linq;
14+
using Microsoft.Extensions.Options;
1415

1516
[Route("api/v1/[controller]")]
1617
[Authorize]
1718
public class CampaignsController : Controller
1819
{
1920
private readonly MarketingContext _context;
21+
private readonly MarketingSettings _settings;
2022
private readonly IMarketingDataRepository _marketingDataRepository;
2123

2224
public CampaignsController(MarketingContext context,
23-
IMarketingDataRepository marketingDataRepository)
25+
IMarketingDataRepository marketingDataRepository,
26+
IOptionsSnapshot<MarketingSettings> settings)
2427
{
2528
_context = context;
2629
_marketingDataRepository = marketingDataRepository;
30+
_settings = settings.Value;
2731
}
2832

2933
[HttpGet]
@@ -171,7 +175,7 @@ private CampaignDTO MapCampaignModelToDto(Campaign campaign)
171175
Description = campaign.Description,
172176
From = campaign.From,
173177
To = campaign.To,
174-
PictureUri = campaign.PictureUri
178+
PictureUri = GetUriPlaceholder(campaign.PictureUri)
175179
};
176180
}
177181

@@ -184,8 +188,17 @@ private Campaign MapCampaignDtoToModel(CampaignDTO campaignDto)
184188
Description = campaignDto.Description,
185189
From = campaignDto.From,
186190
To = campaignDto.To,
187-
PictureUri = $"http://externalcatalogbaseurltobereplaced/api/v1/campaigns/{campaignDto.Id}/pic"
191+
PictureUri = campaignDto.PictureUri
188192
};
189193
}
194+
195+
private string GetUriPlaceholder(string campaignUri)
196+
{
197+
var baseUri = _settings.ExternalCatalogBaseUrl;
198+
199+
campaignUri = campaignUri.Replace("http://externalcatalogbaseurltobereplaced", baseUri);
200+
201+
return campaignUri;
202+
}
190203
}
191204
}

src/Services/Marketing/Marketing.API/MarketingSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ public class MarketingSettings
55
public string ConnectionString { get; set; }
66
public string MongoConnectionString { get; set; }
77
public string MongoDatabase { get; set; }
8+
public string ExternalCatalogBaseUrl { get; set; }
89
}
910
}

src/Services/Marketing/Marketing.API/appsettings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
"ConnectionString": "127.0.0.1",
99
"MongoConnectionString": "mongodb://nosql.data",
1010
"MongoDatabase": "MarketingDb",
11-
"IdentityUrl": "http://localhost:5105"
11+
"IdentityUrl": "http://localhost:5105",
12+
"ExternalCatalogBaseUrl": "http://localhost:5110"
1213
}

src/Web/WebMVC/Controllers/CampaignsController.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,17 @@ public async Task<IActionResult> Index()
8383

8484
public async Task<IActionResult> Details(int id)
8585
{
86-
var campaign = await _campaignService.GetCampaignById(id);
86+
var campaignDto = await _campaignService.GetCampaignById(id);
87+
88+
var campaign = new Campaign
89+
{
90+
Id = campaignDto.Id,
91+
Name = campaignDto.Name,
92+
Description = campaignDto.Description,
93+
From = campaignDto.From,
94+
To = campaignDto.To,
95+
PictureUri = campaignDto.PictureUri
96+
};
8797

8898
return View(campaign);
8999
}

src/Web/WebMVC/Startup.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF
126126
SaveTokens = true,
127127
GetClaimsFromUserInfoEndpoint = true,
128128
RequireHttpsMetadata = false,
129-
Scope = { "openid", "profile", "orders", "basket" }
129+
Scope = { "openid", "profile", "orders", "basket", "marketing" }
130130
};
131131

132132
//Wait untill identity service is ready on compose.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
@{
2+
ViewData["Title"] = "Campaign details";
3+
@model Microsoft.eShopOnContainers.WebMVC.ViewModels.Campaign
4+
}
5+
<section class="esh-campaigns-hero">
6+
<div class="container">
7+
<img class="esh-campaigns-title" src="~/images/main_banner_text.png" />
8+
</div>
9+
</section>
10+
11+
@Html.Partial("_Header", new List<Header>() {
12+
new Header() { Controller = "Catalog", Text = "Back to catalog" },
13+
new Header() { Controller = "Campaigns", Text = "Back to Campaigns" } })
14+
15+
<div class="container">
16+
<div class="card esh-campaigns-items">
17+
<img class="card-img-top" src="@Model.PictureUri" alt="Card image cap">
18+
<div class="card-block">
19+
<h4 class="card-title">@Model.Name</h4>
20+
<p class="card-text">@Model.Description</p>
21+
<p class="card-text">
22+
<small class="text-muted">
23+
From @Model.From.ToString("MMMM dd, yyyy") until @Model.To.ToString("MMMM dd, yyyy")
24+
</small>
25+
</p>
26+
</div>
27+
</div>
28+
</div>

src/Web/WebMVC/Views/Campaigns/Index.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
<form asp-controller="Campaigns" asp-action="Details" asp-route-id="@campaign.Id">
2121
<div class="card-block">
2222
<h4 class="card-title esh-campaigns-name">@campaign.Name</h4>
23-
<p class="card-text esh-campaigns-description">@campaign.Description</p>
2423
<img class="card-img-top esh-campaigns-thumbnail" src="@campaign.PictureUri" alt="@campaign.Name">
24+
<input class="esh-campaigns-button" type="submit" value="More details">
2525
</div>
2626
<div class="card-footer">
27+
2728
<small class="text-muted">
2829
From @campaign.From.ToString("MMMM dd, yyyy") until @campaign.To.ToString("MMMM dd, yyyy")
2930
</small>
30-
</div>
31-
<input class="esh-campaigns-button" type="submit" value="More details">
31+
</div>
3232
</form>
3333
</div>
3434
}

test/Services/IntegrationTests/Services/Marketing/CampaignScenarios.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,11 @@ private static CampaignDTO GetFakeCampaignDto()
117117
{
118118
return new CampaignDTO()
119119
{
120+
Name = "FakeCampaignName",
120121
Description = "FakeCampaignDescription",
121122
From = DateTime.Now,
122123
To = DateTime.Now.AddDays(7),
124+
PictureUri = "http://externalcatalogbaseurltobereplaced/api/v1/campaigns/0/pic"
123125
};
124126
}
125127
}

0 commit comments

Comments
 (0)