protected override async Task OnInitializedAsync() { stage = CheckoutStages.Idle; hubConnection = MessageHub.SetupMessageHub(NavigationManager); ConfigureMessageHub(); await hubConnection.StartAsync(); }
public async Task ShowModal(CustomerVm customerVm) { await CoseTerminal(); stage = CheckoutStages.Idle; AvalibleTerminals = new List <string>(); TerminalId = null; SelectedCustomerId = customerVm.Id; SelectedCustomerName = customerVm.Name; modalRef.Show(); StartScanner(); }
private async Task RequestTerminal() { if ((stage == CheckoutStages.TerminalScanning || stage == CheckoutStages.TerminalFound || stage == CheckoutStages.Idle) && !string.IsNullOrEmpty(SelectedCustomerId)) { if (stage == CheckoutStages.Idle) { stage = CheckoutStages.TerminalScanning; } await hubConnection.SendAsync(nameof(MessageHub.SendFindTerminal), new FindTerminalEvent { StoreId = posState.StoreId, CustomerId = SelectedCustomerId }); } }
public void ConfigureMessageHub() { hubConnection.On <OpenTerminalConfirmationEvent>(SendMethods.TerminalOpenConfirmation.ToString(), async(Event) => { if (posState.StoreId == Event.StoreId) { if (SelectedCustomerId == Event.CustomerId) { //open terminal stage = CheckoutStages.TerminalSelected; TerminalId = Event.TerminalId; var orders = posState.GetCustomerOrders(SelectedCustomerId); await hubConnection.SendAsync(nameof(MessageHub.SendTerminalSummary), new TerminalSummaryEvent { StoreId = posState.StoreId, CustomerId = SelectedCustomerId, Orders = orders, TerminalId = TerminalId }); StateHasChanged(); } else { //terminal take by another customer AvalibleTerminals = AvalibleTerminals.Where(_ => _ != Event.TerminalId).ToList(); StateHasChanged(); } } }); hubConnection.On <TerminalFoundEvent>(SendMethods.TerminalFound.ToString(), (Event) => { if (posState.StoreId == Event.StoreId && SelectedCustomerId == Event.CustomerId && (stage == CheckoutStages.TerminalFound || stage == CheckoutStages.TerminalScanning) ) { if (!AvalibleTerminals.Any(_ => _ == Event.TerminalId)) { AvalibleTerminals.Add(Event.TerminalId); stage = CheckoutStages.TerminalFound; StateHasChanged(); } } }); }
public void HideModal() { stage = CheckoutStages.Idle; modalRef.Hide(); }