PWA Fundvelo der Caritas.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

CaritasServiceFundVeloFoundConclusion.razor 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. @page "/fundvelo/conclusion_found"
  2. @using cwebplusApp.Shared.Services;
  3. @using cwebplusApp.Shared.Models;
  4. @using cwebplusApp.Components;
  5. @inject NavigationManager NavigationManager;
  6. @inject IStringLocalizer<Resources> i18n;
  7. @inject PageHistoryManager PageHistoryManager;
  8. @inject ReportDataProvider ReportDataProvider;
  9. @inject IBicycleRestService IBicycleRestService;
  10. @inject Toaster Toaster;
  11. @inject AppState AppState;
  12. <div class="row px-3 h-100">
  13. <div class="row no-gutters align-items-start justify-content-center w-100">
  14. <MatHeadline4 Style="font-family:Ubuntu;padding-top:1em">@i18n["Confirmation"]</MatHeadline4>
  15. </div>
  16. @if (ResposeStatus.OK == responseStatus) {
  17. <div class="row no-gutters align-items-start justify-content-center w-100" style="height:fit-content">
  18. <div class="w-100" style="text-align: center">
  19. <MatHeadline6 Style="font-family:Ubuntu">@i18n["FinishedTextFound"]</MatHeadline6>
  20. </div>
  21. <div class="w-100" style="text-align: center">
  22. <MatHeadline6 Style="font-family:Ubuntu">@referenceNumber</MatHeadline6>
  23. </div>
  24. </div>
  25. }
  26. <div class="row no-gutters align-items-start justify-content-center w-100" style="height:fit-content">
  27. @if (running) {
  28. <div style="width:48px;margin:0 auto;">
  29. <MatProgressCircle Indeterminate="true" Size="MatProgressCircleSize.Large" />
  30. </div>
  31. <div class="w-100" style="text-align:center;">
  32. <h6 style="font-style:italic;padding-bottom:1em">@i18n["Info.Report.Transmitting"]</h6>
  33. </div>
  34. } else {
  35. if (ResposeStatus.OK == responseStatus) {
  36. <Animate Animation="Animations.ZoomIn" Duration="TimeSpan.FromSeconds(2.5)">
  37. <DoneImage></DoneImage>
  38. </Animate>
  39. } else if (ResposeStatus.Error == responseStatus) {
  40. <Animate Animation="Animations.ZoomIn" Duration="TimeSpan.FromSeconds(2.5)">
  41. <FailureImage></FailureImage>
  42. </Animate>
  43. } else {
  44. <Animate Animation="Animations.ZoomIn" Duration="TimeSpan.FromSeconds(2.5)">
  45. <WarningImage></WarningImage>
  46. </Animate>
  47. }
  48. }
  49. </div>
  50. <div class="row no-gutters align-items-end justify-content-center w-100" style="padding-bottom:2em;padding-top:2em">
  51. <div class="col w-100 text-center">
  52. <MatButton Class="w-50" Raised="true" @onclick="Finished">@i18n["Finished"]</MatButton>
  53. </div>
  54. </div>
  55. </div>
  56. @code {
  57. enum ResposeStatus : ushort {
  58. OK = 1,
  59. Error = 10,
  60. NoConnection = 20
  61. }
  62. private Animate doneAnimZoom;
  63. private ResposeStatus responseStatus = ResposeStatus.NoConnection;
  64. private bool running = true;
  65. private string referenceNumber;
  66. ReportResponse response;
  67. protected async override void OnInitialized() {
  68. base.OnInitialized();
  69. PageHistoryManager.AddPageToHistory(NavigationManager.Uri);
  70. try {
  71. response = await IBicycleRestService.SendFoundReport(ReportDataProvider.Report);
  72. responseStatus = response==null ? ResposeStatus.NoConnection : System.Net.HttpStatusCode.OK == response.StatusCode ? ResposeStatus.OK : ResposeStatus.Error;
  73. } catch (HttpRequestException ex) {
  74. response = new(i18n.GetString("FoundBike"), new string[] { ex.Message });
  75. responseStatus = ResposeStatus.Error;
  76. }
  77. running = false;
  78. if (ResposeStatus.OK == responseStatus) {
  79. Toaster.ShowSuccess(i18n.GetString("FoundBike"), response.Message);
  80. referenceNumber = (response.Data != null && response.Data.Length > 0) ? response.Data[0] : "-";
  81. PageHistoryManager.Reset();
  82. } else if (ResposeStatus.Error == responseStatus) {
  83. Toaster.ShowError(response.Message, response.GetDataAsFormattedList());
  84. } else {
  85. Toaster.ShowWarning(i18n.GetString("Warning.NoConnection.Title"), i18n.GetString("Warning.NoConnection.Msg"));
  86. }
  87. StateHasChanged();
  88. AppState.NotifyChanged();
  89. }
  90. private void Finished() {
  91. NavigationManager.NavigateTo("caritas_services");
  92. }
  93. }