1+ using Microsoft . EntityFrameworkCore . Query . Internal ;
2+ using WebMVC . ViewModels ;
3+
14namespace Microsoft . eShopOnContainers . WebMVC . Controllers
25{
3- using Microsoft . AspNetCore . Authorization ;
4- using Microsoft . AspNetCore . Mvc ;
5- using Microsoft . eShopOnContainers . WebMVC . Models ;
6- using Microsoft . eShopOnContainers . WebMVC . Services ;
7- using Microsoft . eShopOnContainers . WebMVC . ViewModels ;
8- using System . Collections . Generic ;
6+ using AspNetCore . Authorization ;
7+ using AspNetCore . Mvc ;
8+ using Services ;
9+ using ViewModels ;
910 using System . Threading . Tasks ;
11+ using System ;
12+ using ViewModels . Pagination ;
1013
1114 [ Authorize ]
1215 public class CampaignsController : Controller
1316 {
14- private ICampaignService _campaignService ;
17+ private readonly ICampaignService _campaignService ;
1518
1619 public CampaignsController ( ICampaignService campaignService ) =>
1720 _campaignService = campaignService ;
1821
19- public async Task < IActionResult > Index ( )
22+ public async Task < IActionResult > Index ( int page = 0 , int pageSize = 10 )
2023 {
21- var campaignDtoList = await _campaignService . GetCampaigns ( ) ;
24+ var campaignList = await _campaignService . GetCampaigns ( pageSize , page ) ;
2225
23- if ( campaignDtoList is null )
26+ var vm = new CampaignViewModel ( )
2427 {
25- return View ( ) ;
26- }
28+ CampaignItems = campaignList . Data ,
29+ PaginationInfo = new PaginationInfo ( )
30+ {
31+ ActualPage = page ,
32+ ItemsPerPage = pageSize ,
33+ TotalItems = campaignList . Count ,
34+ TotalPages = ( int ) Math . Ceiling ( ( ( decimal ) campaignList . Count / pageSize ) )
35+ }
36+ } ;
2737
28- var campaignList = MapCampaignModelListToDtoList ( campaignDtoList ) ;
38+ vm . PaginationInfo . Next = ( vm . PaginationInfo . ActualPage == vm . PaginationInfo . TotalPages - 1 ) ? "is-disabled" : "" ;
39+ vm . PaginationInfo . Previous = ( vm . PaginationInfo . ActualPage == 0 ) ? "is-disabled" : "" ;
2940
30- return View ( campaignList ) ;
41+ return View ( vm ) ;
3142 }
3243
3344 public async Task < IActionResult > Details ( int id )
@@ -39,7 +50,7 @@ public async Task<IActionResult> Details(int id)
3950 return NotFound ( ) ;
4051 }
4152
42- var campaign = new Campaign
53+ var campaign = new CampaignItem
4354 {
4455 Id = campaignDto . Id ,
4556 Name = campaignDto . Name ,
@@ -51,30 +62,5 @@ public async Task<IActionResult> Details(int id)
5162
5263 return View ( campaign ) ;
5364 }
54-
55- private List < Campaign > MapCampaignModelListToDtoList ( IEnumerable < CampaignDTO > campaignDtoList )
56- {
57- var campaignList = new List < Campaign > ( ) ;
58-
59- foreach ( var campaignDto in campaignDtoList )
60- {
61- campaignList . Add ( MapCampaignDtoToModel ( campaignDto ) ) ;
62- }
63-
64- return campaignList ;
65- }
66-
67- private Campaign MapCampaignDtoToModel ( CampaignDTO campaign )
68- {
69- return new Campaign
70- {
71- Id = campaign . Id ,
72- Name = campaign . Name ,
73- Description = campaign . Description ,
74- From = campaign . From ,
75- To = campaign . To ,
76- PictureUri = campaign . PictureUri
77- } ;
78- }
7965 }
8066}
0 commit comments