src/Relecloud.Web.CallCenter/Views/Cart/Checkout.cshtml (113 lines of code) (raw):
@model Relecloud.Web.CallCenter.ViewModels.CheckoutViewModel
@{
ViewData["Title"] = "Checkout";
}
<h1>@ViewData["Title"]</h1>
@if (Model == null || Model.Cart == null || Model.PaymentDetails == null)
{
<div class="row">
<div class="col-md-8">
We're sorry, but an error is blocking your checkout. Please try again later.
</div>
</div>
return;
}
<form asp-action="Checkout">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-md-8">
<fieldset>
<legend>Customer Payment Details</legend>
<div class="mb-3">
<label asp-for="PaymentDetails!.Name" class="form-label"></label>
<input asp-for="PaymentDetails!.Name" class="form-control" />
<span asp-validation-for="PaymentDetails!.Name" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.Email" class="form-label"></label>
<input asp-for="PaymentDetails!.Email" class="form-control" />
<span asp-validation-for="PaymentDetails!.Email" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.Phone" class="form-label"></label>
<input asp-for="PaymentDetails!.Phone" class="form-control" />
<span asp-validation-for="PaymentDetails!.Phone" class="text-danger"></span>
</div>
</fieldset>
<fieldset>
<legend>Customer Payment Details</legend>
<div class="mb-3">
<label asp-for="PaymentDetails!.NameOnCard" class="form-label"></label>
<input asp-for="PaymentDetails!.NameOnCard" class="form-control" />
<span asp-validation-for="PaymentDetails!.NameOnCard" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.CardType" class="form-label"></label>
<select asp-for="PaymentDetails!.CardType" asp-items="Model.GetCardTypeList()" class="form-select"></select>
<span asp-validation-for="PaymentDetails!.CardType" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.CardNumber" class="form-label"></label>
<select asp-for="PaymentDetails!.CardNumber" asp-items="Model.GetSampleCardNumbers()" class="form-select"></select>
<span asp-validation-for="PaymentDetails!.CardNumber" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.ExpirationMonthYear" class="form-label"></label>
<input asp-for="PaymentDetails!.ExpirationMonthYear" class="form-control" />
<span asp-validation-for="PaymentDetails!.ExpirationMonthYear" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="PaymentDetails!.SecurityCode" class="form-label"></label>
<select asp-for="PaymentDetails!.SecurityCode" asp-items="Model.GetSampleSecurityCodes()" class="form-select"></select>
<span asp-validation-for="PaymentDetails!.SecurityCode" class="text-danger"></span>
</div>
</fieldset>
<div class="mb-3">
<input type="submit" value="Purchase" class="btn btn-primary" />
</div>
</div>
<div class="col-md-4">
<fieldset>
<legend>Your Order</legend>
<div class="alert alert-info">
<table>
<thead>
<tr class="info">
<th class="col-md-9">Concert</th>
<th class="col-md-1">Price</th>
</tr>
</thead>
@foreach (var concert in Model.Cart.Concerts.Keys)
{
<tr>
<td>
@concert.Artist on @concert.StartTime.UtcDateTime.ToString()
</td>
<td>
@((concert.Price * Model.Cart.Concerts[concert]).ToString("c"))
</td>
</tr>
}
<tfoot>
<tr>
<td class="pt-3">Total purchases</td>
<td class="pt-3">@Model.Cart.TotalPrice.ToString("c")</td>
</tr>
<tr>
<td>Sales tax</td>
<td>@Model.Cart.TotalPrice.ToString("c")</td>
</tr>
<tr>
<th class="pt-3">Total</th>
<th class="pt-3">@Model.Cart.TotalPrice.ToString("c")</th>
</tr>
</tfoot>
</table>
</div>
</fieldset>
</div>
</div>
</form>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}