PWA Fundvelo der Caritas.
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

CaritasServiceFundVeloFoundConclusion.razor 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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 (ResponseStatus.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 (ResponseStatus.OK == responseStatus) {
  36. <Animate Animation="Animations.ZoomIn" Duration="TimeSpan.FromSeconds(2.5)">
  37. <DoneImage></DoneImage>
  38. </Animate>
  39. } else if (ResponseStatus.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 ResponseStatus : ushort {
  58. OK = 1,
  59. Error = 10,
  60. NoConnection = 20
  61. }
  62. private Animate doneAnimZoom;
  63. private ResponseStatus responseStatus = ResponseStatus.NoConnection;
  64. private bool running = true;
  65. private string referenceNumber;
  66. private ReportResponse response;
  67. protected async override void OnInitialized() {
  68. base.OnInitialized();
  69. try {
  70. if (ReportDataProvider.ReportRepositoryItem != null) {
  71. response = await IBicycleRestService.SendFoundReport((FoundReportRepositoryItem)ReportDataProvider.ReportRepositoryItem);
  72. } else {
  73. response = await IBicycleRestService.SendFoundReport(ReportDataProvider.Report);
  74. }
  75. responseStatus = response==null ? ResponseStatus.NoConnection : System.Net.HttpStatusCode.OK == response.StatusCode ? ResponseStatus.OK : ResponseStatus.Error;
  76. } catch (HttpRequestException ex) {
  77. response = new(I18n.GetString("FoundBike"), new string[] { ex.Message });
  78. responseStatus = ResponseStatus.Error;
  79. }
  80. running = false;
  81. if (ResponseStatus.OK == responseStatus) {
  82. Toaster.ShowSuccess(I18n.GetString("FoundBike"), response.Message);
  83. referenceNumber = (response.Data != null && response.Data.Length > 0) ? response.Data[0] : "-";
  84. PageHistoryManager.Reset();
  85. } else if (ResponseStatus.Error == responseStatus) {
  86. Toaster.ShowError(response.Message, response.GetDataAsFormattedList());
  87. } else {
  88. Toaster.ShowWarning(I18n.GetString("Warning.NoConnection.Title"), I18n.GetString("Warning.NoConnection.Msg"));
  89. PageHistoryManager.Reset();
  90. }
  91. StateHasChanged();
  92. AppState.NotifyChanged();
  93. }
  94. private void Finished() {
  95. NavigationManager.NavigateTo("caritas_services");
  96. }
  97. }