|
|
@ -6,30 +6,50 @@ |
|
|
|
@inject NavigationManager NavigationManager |
|
|
|
@inject NavigationManager NavigationManager |
|
|
|
|
|
|
|
|
|
|
|
<div class="main"> |
|
|
|
<div class="main"> |
|
|
|
<div class="checkout-cols"> |
|
|
|
<EditForm Model="Order.DeliveryAddress" OnSubmit="CheckSubmission"> |
|
|
|
<div class="checkout-order-details"> |
|
|
|
<div class="checkout-cols"> |
|
|
|
<h4>Review order</h4> |
|
|
|
<div class="checkout-order-details"> |
|
|
|
<OrderReview Order="Order"/> |
|
|
|
<h4>Review order</h4> |
|
|
|
</div> |
|
|
|
<OrderReview Order="Order"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="checkout-delivery-address"> |
|
|
|
<div class="checkout-delivery-address"> |
|
|
|
<h4>Deliver to...</h4> |
|
|
|
<h4>Deliver to...</h4> |
|
|
|
<AddressEditor Address="Order.DeliveryAddress"/> |
|
|
|
@if (isError) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
<div class="alert alert-danger">Please enter a name and address.</div> |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
<AddressEditor Address="Order.DeliveryAddress"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<button class="checkout-button btn btn-warning" @onclick="PlaceOrder" disabled="@isSubmitting"> |
|
|
|
<button class="checkout-button btn btn-warning" disabled="@isSubmitting"> |
|
|
|
Place order |
|
|
|
Place order |
|
|
|
</button> |
|
|
|
</button> |
|
|
|
|
|
|
|
</EditForm> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
@code { |
|
|
|
@code { |
|
|
|
Order Order => OrderState.Order; |
|
|
|
Order Order => OrderState.Order; |
|
|
|
bool isSubmitting; |
|
|
|
bool isSubmitting; |
|
|
|
|
|
|
|
bool isError = false; |
|
|
|
|
|
|
|
|
|
|
|
async Task PlaceOrder() |
|
|
|
async Task CheckSubmission(EditContext editContext) |
|
|
|
{ |
|
|
|
{ |
|
|
|
isSubmitting = true; |
|
|
|
isSubmitting = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var model = editContext.Model as Address; |
|
|
|
|
|
|
|
isError = string.IsNullOrWhiteSpace(model?.Name) |
|
|
|
|
|
|
|
|| string.IsNullOrWhiteSpace(model?.Line1) |
|
|
|
|
|
|
|
|| string.IsNullOrWhiteSpace(model?.PostalCode); |
|
|
|
|
|
|
|
if (!isError) |
|
|
|
|
|
|
|
await PlaceOrder(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isSubmitting = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async Task PlaceOrder() |
|
|
|
|
|
|
|
{ |
|
|
|
var response = await HttpClient.PostAsJsonAsync(NavigationManager.BaseUri + "orders", OrderState.Order); |
|
|
|
var response = await HttpClient.PostAsJsonAsync(NavigationManager.BaseUri + "orders", OrderState.Order); |
|
|
|
var newOrderId = await response.Content.ReadFromJsonAsync<int>(); |
|
|
|
var newOrderId = await response.Content.ReadFromJsonAsync<int>(); |
|
|
|
OrderState.ResetOrder(); |
|
|
|
OrderState.ResetOrder(); |
|
|
|