@page "/account" @page "/fundvelo/account/{FromRoute}" @using cwebplusApp.Shared.Models; @using cwebplusApp.Shared.Services; @inject NavigationManager NavigationManager @inject UserDataProvider UserDataProvider @inject IStringLocalizer I18n @inject PageHistoryManager PageHistoryManager @inject ReportDataProvider ReportDataProvider @inject Toaster Toaster @inject InputCursorHandler InputCursorHandler

@I18n["MyData"]

@I18n["Male"] @I18n["Female"]
@if (!string.IsNullOrEmpty(FromRoute)) {
@I18n["Save"]
@I18n["Cancel"]
@I18n["Send"]
} else {
@I18n["Save"]
}
@code { [Parameter] public string FromRoute { get; set; } private UserData Account = new(); protected async override void OnInitialized() { base.OnInitialized(); PageHistoryManager.OnBeforeNavigateBack = new EventCallback(this, (Action)OnBeforeNavigateBack); Account = await GetUserData(); if (!string.IsNullOrEmpty(FromRoute) && ReportDataProvider.Report != null) { UserDataProvider.MapUserData(Account, ReportDataProvider.Report); } StateHasChanged(); } private void OnBeforeNavigateBack() { if (ReportDataProvider.Report != null) { UserDataProvider.MapReport(ReportDataProvider.Report, Account); } } private async Task SaveUserData() { Validator.ValidateAccount(Account); await UserDataProvider.Save(Account); } private async void SaveUserDataAndClose() { try { await SaveUserData(); NavigationManager.NavigateTo("caritas_services"); } catch (ArgumentException) { Toaster.ShowWarning(I18n.GetString("Warning.MandatoryFields.Title"), I18n.GetString("Warning.MandatoryFields.Msg")); } } private async Task GetUserData() { return await UserDataProvider.Get(); } private void Next() { PageHistoryManager.AddPageToHistory(NavigationManager.Uri); try { if ("Found".Equals(FromRoute)) { UserDataProvider.MapReport(ReportDataProvider.Report, Account); Validator.ValidateContact(ReportDataProvider.Report); NavigationManager.NavigateTo("fundvelo/conclusion_found"); } else { UserDataProvider.MapMissingReport(ReportDataProvider.GetMissingReport(), Account); Validator.ValidateContact(ReportDataProvider.Report); NavigationManager.NavigateTo("fundvelo/conclusion_missing"); } } catch (ArgumentException) { Toaster.ShowWarning(I18n.GetString("Warning.MandatoryFields.Title"), I18n.GetString("Warning.MandatoryFields.Msg")); } } private void Cancel() { NavigationManager.NavigateTo("caritas_services"); } }