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