src/Relecloud.Web.CallCenter/Controllers/TicketController.cs (45 lines of code) (raw):

using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Relecloud.Web.CallCenter.Infrastructure; using Relecloud.Web.CallCenter.ViewModels; using Relecloud.Web.Models.ConcertContext; using Relecloud.Web.Models.Services; namespace Relecloud.Web.CallCenter.Controllers { [Authorize] public class TicketController : Controller { #region Fields private readonly ILogger<TicketController> logger; private readonly IConcertContextService concertService; #endregion #region Constructors public TicketController(IConcertContextService concertService, ILogger<TicketController> logger) { this.concertService = concertService; this.logger = logger; } #endregion #region Index public async Task<IActionResult> Index(int currentPage) { try { var userId = this.User.GetUniqueId(); var pagedResultModel = await this.concertService.GetAllTicketsAsync(userId, currentPage * TicketViewModel.DefaultPageSize, TicketViewModel.DefaultPageSize); return View(new TicketViewModel { CurrentPage = currentPage, TotalCount = pagedResultModel?.TotalCount ?? 0, Tickets = pagedResultModel?.PageOfData ?? new List<Ticket>() }); } catch (Exception ex) { logger.LogError(ex, "Unable to retrieve upcoming concerts"); return View(); } } #endregion } }