in App/src/Events-TenantUserApp/Controllers/FindSeatsController.cs [42:88]
public async Task<ActionResult> FindSeats(string tenant, int eventId)
{
try
{
if (eventId != 0)
{
var tenantDetails = (_catalogRepository.GetTenant(tenant)).Result;
if (tenantDetails != null)
{
SetTenantConfig(tenantDetails.TenantId, tenantDetails.TenantIdInString);
var eventDetails = await _tenantRepository.GetEvent(eventId, tenantDetails.TenantId);
if (eventDetails != null)
{
var eventSections = await _tenantRepository.GetEventSections(eventId, tenantDetails.TenantId);
var seatSectionIds = eventSections.Select(i => i.SectionId).ToList();
var seatSections = await _tenantRepository.GetSections(seatSectionIds, tenantDetails.TenantId);
if (seatSections != null)
{
var ticketsSold = await _tenantRepository.GetTicketsSold(seatSections[0].SectionId, eventId, tenantDetails.TenantId);
FindSeatViewModel viewModel = new FindSeatViewModel
{
EventDetails = eventDetails,
SeatSections = seatSections,
SeatsAvailable = (seatSections[0].SeatRows * seatSections[0].SeatsPerRow) - ticketsSold
};
return View(viewModel);
}
}
}
else
{
return View("TenantError", tenant);
}
}
}
catch (Exception ex)
{
_logger.LogError(0, ex, "FindSeats failed for tenant {tenant} and event {eventId}", tenant, eventId);
return View("TenantError", tenant);
}
return RedirectToAction("Index", "Events", new { tenant });
}