@page "/fundvelo/conclusion_found" @using cwebplusApp.Shared.Services; @using cwebplusApp.Shared.Models; @using cwebplusApp.Components; @using System.Text.RegularExpressions; @inject NavigationManager NavigationManager; @inject IStringLocalizer I18n; @inject PageHistoryManager PageHistoryManager; @inject ReportDataProvider ReportDataProvider; @inject IBicycleRestService IBicycleRestService; @inject Toaster Toaster; @inject AppState AppState;
@I18n["Confirmation"]
@if (ResponseStatus.OK == responseStatus) {
@I18n["FinishedTextFound"]
@referenceNumber
}
@if (running) {
@I18n["Info.Report.Transmitting"]
} else { if (ResponseStatus.OK == responseStatus) { } else if (ResponseStatus.Error == responseStatus) { } else { } }
@if (!running) { if (ResponseStatus.Error == responseStatus) {
@I18n["EditData"]
@I18n["Cancel"]
} else {
@I18n["Finished"]
} }
@code { enum ResponseStatus : ushort { OK = 1, Error = 10, NoConnection = 20 } private Animate doneAnimZoom; private ResponseStatus responseStatus = ResponseStatus.NoConnection; private bool running = true; private string referenceNumber; private ReportResponse response; protected async override void OnInitialized() { base.OnInitialized(); try { if (ReportDataProvider.ReportRepositoryItem != null) { response = await IBicycleRestService.SendFoundReport((FoundReportRepositoryItem)ReportDataProvider.ReportRepositoryItem); } else { response = await IBicycleRestService.SendFoundReport(ReportDataProvider.Report); } responseStatus = response == null ? ResponseStatus.NoConnection : System.Net.HttpStatusCode.OK == response.StatusCode ? ResponseStatus.OK : ResponseStatus.Error; } catch (HttpRequestException ex) { response = new(I18n.GetString("FoundBike"), new string[] { ex.Message }); responseStatus = ResponseStatus.Error; } running = false; if (ResponseStatus.OK == responseStatus) { Toaster.ShowSuccess(I18n.GetString("FoundBike"), response.Message); referenceNumber = Regex.Match(response.Message, "[A-Z]{2}[0-9]{10}").Value; referenceNumber = (referenceNumber != null && referenceNumber.Length > 0) ? referenceNumber : "-"; PageHistoryManager.Reset(); } else if (ResponseStatus.Error == responseStatus) { Toaster.ShowError(response.Message, response.GetDataAsFormattedList()); } else { Toaster.ShowWarning(I18n.GetString("Warning.NoConnection.Title"), I18n.GetString("Warning.NoConnection.Msg")); PageHistoryManager.Reset(); } StateHasChanged(); AppState.NotifyChanged(); } private void Finished() { NavigationManager.NavigateTo("caritas_services"); } private void Cancel() { Finished(); } private void EditData() { NavigationManager.NavigateTo("fundvelo/keydata/Found"); } }