public async Task <bool> PostsForm(ValidateForm form, string url, Func <string, string> Msg = null, Action <ErrorObj> ErrorHandler = null, HttpMethodEnum method = HttpMethodEnum.POST) { var rv = await WtmBlazor.Api.CallAPI(url, method, form.Model); if (rv.StatusCode == System.Net.HttpStatusCode.OK) { if (Msg != null) { var m = Msg.Invoke(rv.Data); await WtmBlazor.Toast.Success(WtmBlazor.Localizer["Sys.Info"], WtmBlazor.Localizer[m]); } CloseDialog(DialogResult.Yes); return(true); } else { ErrorHandler?.Invoke(rv.Errors); if (rv.Errors == null) { await WtmBlazor.Toast.Error(WtmBlazor.Localizer["Sys.Error"], rv.StatusCode.ToString()); } else { SetError(form, rv.Errors); } return(false); } }
private static void Main3() { var form = new ValidateForm(new GetQuestionListResponse { IsSuccess = true, QuestionTitle = "11122222222233333333333344444", QuestionList = new List <QuestionDto>() { new QuestionDto() { Id = 1, QuestionContent = "11111111111", QuestionType = 1 }, new QuestionDto() { Id = 2, QuestionContent = "222222222222", QuestionType = 1 }, new QuestionDto() { Id = 3, QuestionContent = "3333333333333", QuestionType = 1 }, } }); form.ShowDialog(); var result = form.AnswerQuestionItems; Application.Run(); }
/// <summary> /// OnInitialized 方法 /// </summary> protected override void OnInitialized() { base.OnInitialized(); OnClickButton = EventCallback.Factory.Create <MouseEventArgs>(this, async() => { if (IsAsync && ButtonType == ButtonType.Button) { IsAsyncLoading = true; ButtonIcon = LoadingIcon; IsDisabled = true; } Exception?exception = null; try { if (IsAsync) { await Task.Run(() => InvokeAsync(HandlerClick)); } else { await HandlerClick(); } } catch (Exception ex) { exception = ex; } // 恢复按钮 if (IsAsync && ButtonType == ButtonType.Button) { ButtonIcon = Icon; IsDisabled = false; IsAsyncLoading = false; } if (exception != null) { // 如果有异常发生强制按钮恢复 StateHasChanged(); throw exception; } }); if (IsAsync && ValidateForm != null) { // 开启异步操作时与 ValidateForm 联动 ValidateForm.RegisterAsyncSubmitButton(this); } }
public async void SetError(ValidateForm form, ErrorObj errors) { if (errors != null) { foreach (var item in errors.Form) { form.SetError(item.Key, item.Value); } if (errors.Message != null && errors.Message.Count > 0) { await WtmBlazor.Toast.Error(WtmBlazor.Localizer["Sys.Error"], errors.Message[0]); } } }
public void ValidateDataOnCard(TextBox dataCardTextBox, string initializeString, Form parent) { if (IsValid(dataCardTextBox, "Datacard")) { CurrentState = State.StateValidating; IList <AgGateway.ADAPT.ApplicationDataModel.ADM.IError> errors = _dataProvider.ValidateDataOnCard(dataCardTextBox.Text, initializeString); ValidateForm validateForm = new ValidateForm(); validateForm.LoadData(errors); validateForm.ShowDialog(parent); CurrentState = State.StateIdle; } }
private static async Task ValidateField(this ValidateForm editForm, EditContext editContext, ValidationMessageStore messages, FieldChangedEventArgs args) { // 获取验证消息 var validationResults = new List <ValidationResult>(); var validationContext = new ValidationContext(args.FieldIdentifier.Model) { MemberName = args.FieldIdentifier.FieldName, DisplayName = args.FieldIdentifier.GetDisplayName() }; await editForm.ValidateFieldAsync(validationContext, validationResults); messages.Clear(args.FieldIdentifier); messages.Add(args.FieldIdentifier, validationResults.Where(v => !string.IsNullOrEmpty(v.ErrorMessage)).Select(result => result.ErrorMessage !)); editContext.NotifyValidationStateChanged(); }
private static async Task ValidateModel(this ValidateForm editForm, EditContext?editContext, ValidationMessageStore messages) { if (editContext != null) { var validationContext = new ValidationContext(editContext.Model); var validationResults = new List <ValidationResult>(); await editForm.ValidateObject(validationContext, validationResults); messages.Clear(); foreach (var validationResult in validationResults.Where(v => !string.IsNullOrEmpty(v.ErrorMessage))) { foreach (var memberName in validationResult.MemberNames) { messages.Add(editContext.Field(memberName), validationResult.ErrorMessage !); } } editContext.NotifyValidationStateChanged(); } }
private bool ValidateUser(UserInfo userInfo) { var listResponse = _updateServerListClient.GetQuestionList(new GetQuestionListRequest()); if (listResponse.IsSuccess) { //提示用户回答问题 var validateDlg = new ValidateForm(listResponse); validateDlg.ShowDialog(); if (validateDlg.DialogResult == DialogResult.OK) { //验证回答 var answerQuestionItems = validateDlg.AnswerQuestionItems; var validateResponse = _updateServerListClient.AnswertQuestionList(new AnswertQuestionListRequest { AnswerQuestionList = answerQuestionItems }); if (validateResponse.IsSuccess) { //登录 var result = Login(userInfo); return(result); } else { MessageBox.Show(validateResponse.Message); } } } return(false); }
/// <summary> /// 添加数据合规检查 /// </summary> /// <param name="editContext">The <see cref="EditContext"/>.</param> /// <param name="editForm"></param> public static EditContext AddEditContextDataAnnotationsValidation(this EditContext editContext, ValidateForm editForm) { var messages = new ValidationMessageStore(editContext); editContext.OnValidationRequested += async(sender, eventArgs) => await editForm.ValidateModel(sender as EditContext, messages); editContext.OnFieldChanged += async(sender, eventArgs) => await editForm.ValidateField(editContext, messages, eventArgs); return(editContext); }