protected override async Task OnInitializedAsync() { try { Model = await Http.GetFromJsonAsync <AutoUpdateUserModel>($"api/account/info/{ModelId}"); RequestHeaders = await HeadersProvider.CreateAsync(); if (_options == null) { _options = await Http.GetFromJsonAsync <IEnumerable <SelectOptionList> >("api/account/options"); } } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } catch (Exception ex) { if (Manager != null) { Manager.SubmitResult = FormManagerSubmitResult.Failed(null, ex.ToString(), false); } } await base.OnInitializedAsync(); }
private async Task HandleSubmitDone(FormManagerSubmitResult result) { Manager.ProcessCustomServerResponse(result); if (true == Manager.SubmitResult?.Succeeded) { await Task.Delay(2000); NavigationManager.NavigateTo("/account/autoeditform", true); } }
protected override async Task HandleSubmitDoneAsync(FormManagerSubmitResult result) { if (result.Succeeded) { this.ProcessCustomServerResponse(result); if (result.UploadContainedFiles) { await RemoteImgRef?.RefreshAsync(); } } await base.HandleSubmitDoneAsync(result); }
/// <summary> /// Custom server response handler. /// </summary> /// <param name="result"> /// A reference to the <see cref="FormManagerBase{TModel}.SubmitResult"/> property. /// </param> private void ProcessCustomServerResponse(FormManagerSubmitResult result) { // Don't update the state because it will be done by the // form manager once execution of this method is finished. var xhr = result.XHR; if (xhr.IsJsonResponse) { if (IsDebug) { Console.WriteLine($"Raw JSON result: {xhr.ResponseText}"); } try { var postResult = JsonSerializer.Deserialize <PostFormHttpResult>( xhr.ResponseText, CaseInsensitiveJson ); if (postResult.Success) { SubmitResult = FormManagerSubmitResult.Success(result, postResult.Message ?? SUCCESS_MESSAGE); } else if (true == xhr.ExtraProperties?.ContainsKey("error")) { SubmitResult = FormManagerSubmitResult.Failed(result, xhr.ExtraProperties["error"]?.ToString()); } else { SubmitResult = FormManagerSubmitResult.Failed(result, postResult.GetErrorDetails() ?? UNKNOWN_SUBMIT_ERROR); } } catch (Exception ex) { Trace.WriteLine(ex); } } else if (IsDebug) { if (xhr.IsHtmlResponse) { Console.WriteLine($"HTML result: {xhr.ResponseText}"); } else { Console.WriteLine($"Raw result: {xhr.ResponseText}"); } } }
/// <summary> /// Custom server response handler. /// </summary> /// <param name="manager"></param> /// <param name="result"> /// A reference to the <see cref="FormManagerBase{TModel}.SubmitResult"/> property. /// </param> public static void ProcessCustomServerResponse(this FormManagerBase manager, FormManagerSubmitResult result) { var xhr = result.XHR; if (xhr.IsJsonResponse) { try { var postResult = JsonSerializer.Deserialize <PostFormHttpResult>( xhr.ResponseText, CaseInsensitiveJson ); if (postResult.Success) { manager.SubmitResult = FormManagerSubmitResult.Success(result, postResult.Message ?? SUCCESS_MESSAGE); } else if (true == xhr.ExtraProperties?.ContainsKey("error")) { manager.SubmitResult = FormManagerSubmitResult.Failed(result, xhr.ExtraProperties["error"]?.ToString()); } else { manager.SubmitResult = FormManagerSubmitResult.Failed(result, postResult.GetErrorDetails() ?? UNKNOWN_SUBMIT_ERROR); } } catch (Exception ex) { Trace.WriteLine(ex); } } else if (manager.IsDebug && !result.Succeeded) { if (xhr.IsHtmlResponse) { Console.WriteLine($"HTML result: {xhr.ResponseText}"); } else { Console.WriteLine($"Raw result: {xhr.ResponseText}"); } } }
protected override async Task OnInitializedAsync() { try { await RetrieveUserInfoAsync(); RequestHeaders = await HeadersProvider.CreateAsync(); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } catch (Exception ex) { SubmitResult = FormManagerSubmitResult.Failed(null, ex.ToString(), false); } await base.OnInitializedAsync(); }
protected override async Task OnInitializedAsync() { // This isn't an unnecessary assignment; EditForm needs an initialized Model. // Do the initialization before calling any asynchronous method. Model = new UpdateUserModel(); try { await RetrieveUserInfoAsync(); await SetRequestHeadersAsync(); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } catch (Exception ex) { SubmitResult = FormManagerSubmitResult.Failed(null, ex.ToString(), false); } await base.OnInitializedAsync(); }
private void HandleSubmitDone(FormManagerSubmitResult result) { // Succeeded means the server responded with a success status code. // But we still have to find out how the action really came out. if (result.Succeeded && result.XHR.IsJsonResponse) { try { // Since the response is in JSON format, let's parse it and investigate. var response = JsonSerializer.Deserialize <RegisterUserModelResult>( result.XHR.ResponseText, CaseInsensitiveJson); if (!response.Success) { manager.SubmitResult = FormManagerSubmitResult.Failed(result, response.Error); } else if (!string.IsNullOrEmpty(response.Message)) { manager.SubmitResult = FormManagerSubmitResult.Success(result, response.Message); if (response.SignedIn) { NavigationManager.NavigateTo("/account/update", true); } else { // invalidate the form by setting a new model Model = new RegisterUserModel(); StateHasChanged(); } } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex); } } }