Create view for index campaing and his controller method

This commit is contained in:
Christian Arenas 2017-06-15 19:23:57 +02:00
parent 46db196633
commit 6a315764a8
2 changed files with 105 additions and 6 deletions

View File

@ -3,6 +3,10 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.eShopOnContainers.WebMVC.Services; using Microsoft.eShopOnContainers.WebMVC.Services;
using Microsoft.eShopOnContainers.WebMVC.ViewModels;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
[Authorize] [Authorize]
public class CampaignsController : Controller public class CampaignsController : Controller
@ -12,10 +16,76 @@ namespace Microsoft.eShopOnContainers.WebMVC.Controllers
public CampaignsController(ICampaignService campaignService) => public CampaignsController(ICampaignService campaignService) =>
_campaignService = campaignService; _campaignService = campaignService;
public IActionResult Index() public async Task<IActionResult> Index()
{ {
var campaignList = _campaignService.GetCampaigns(); //var campaignList = await _campaignService.GetCampaigns();
return View();
var campaignList = new List<Campaign>
{
new Campaign
{
Id = 1,
Name = "NameTest1",
Description = "DescriptionTest1",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/1/pic"
},
new Campaign
{
Id = 2,
Name = "NameTest2",
Description = "DescriptionTest2",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/2/pic"
},
new Campaign
{
Id = 3,
Name = "NameTest3",
Description = "DescriptionTest3",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/3/pic"
},
new Campaign
{
Id = 4,
Name = "NameTest4",
Description = "DescriptionTest4",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/4/pic"
},
new Campaign
{
Id = 5,
Name = "NameTest5",
Description = "DescriptionTest5",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/5/pic"
},
new Campaign
{
Id = 6,
Name = "NameTest6",
Description = "DescriptionTest6",
From = DateTime.Now,
To = DateTime.Now.AddDays(7),
PictureUri = "http://localhost:5110/api/v1/campaigns/6/pic"
}
};
return View(campaignList);
}
public async Task<IActionResult> Details(int id)
{
var campaign = await _campaignService.GetCampaignById(id);
return View(campaign);
} }
} }
} }

View File

@ -1,7 +1,36 @@
@{ @{
ViewData["Title"] = "Index"; ViewData["Title"] = "Campaigns";
@model IEnumerable<Campaign>
} }
<h2>Index</h2> <section class="esh-campaigns-hero">
<div class="container">
<img class="esh-campaigns-title" src="~/images/main_banner_text.png" />
</div>
</section>
@Html.Partial("_Header", new List<Header>() {
new Header() { Controller = "Catalog", Text = "Back to catalog" } })
<div class="container">
<div class="card-group esh-campaigns-items row">
@foreach (var campaign in Model ?? Enumerable.Empty<Campaign>())
{
<div class="esh-campaigns-item col-md-4">
<form asp-controller="Campaigns" asp-action="Details" asp-route-id="@campaign.Id">
<div class="card-block">
<h4 class="card-title esh-campaigns-name">@campaign.Name</h4>
<p class="card-text esh-campaigns-description">@campaign.Description</p>
<img class="card-img-top esh-campaigns-thumbnail" src="@campaign.PictureUri" alt="@campaign.Name">
</div>
<div class="card-footer">
<small class="text-muted">
From @campaign.From.ToString("MMMM dd, yyyy") until @campaign.To.ToString("MMMM dd, yyyy")
</small>
</div>
<input class="esh-campaigns-button" type="submit" value="More details">
</form>
</div>
}
</div>
</div>