Ejemplo n.º 1
0
        /// <summary>
        /// 提交指定 <see cref="CascadedEditContext"/> 的表单。
        /// </summary>
        public async Task Submit()
        {
            if (CascadedEditContext == null)
            {
                throw new InvalidOperationException($"未设置 {nameof(CascadedEditContext)} 的表单,无法进行提交,请使用 {nameof(OnClick)} 触发点击按钮的事件。");
            }

            var valid = CascadedEditContext.Validate();

            if (valid)
            {
                IsSubmitting = true;
                await Disable();

                await Task.Delay(ValidSubmitDelay);

                await OnValidSubmit.InvokeAsync(CascadedEditContext);

                IsSubmitting = false;
                await Disable(false);
            }
            else
            {
                await OnInvalidSubmit.InvokeAsync(CascadedEditContext);
            }
        }
Ejemplo n.º 2
0
        private async Task HandleSubmitAsync()
        {
            if (OnSubmit.HasDelegate)
            {
                await OnSubmit.InvokeAsync(_fixedEditContext);
            }
            else
            {
                var isValid = _fixedEditContext.Validate();

                if (isValid)
                {
                    if (OnValidSubmit.HasDelegate)
                    {
                        await OnValidSubmit.InvokeAsync(_fixedEditContext);
                    }
                    else
                    {
                        await HandleValidSubmit();
                    }
                }

                if (!isValid && OnInvalidSubmit.HasDelegate)
                {
                    await OnInvalidSubmit.InvokeAsync(_fixedEditContext);
                }
            }
        }
Ejemplo n.º 3
0
        private async Task HandleSubmitAsync()
        {
            if (OnSubmit.HasDelegate)
            {
                // When using OnSubmit, the developer takes control of the validation lifecycle
                await OnSubmit.InvokeAsync(_fixedEditContext);
            }
            else
            {
                // Otherwise, the system implicitly runs validation on form submission
                var isValid = _fixedEditContext.Validate(); // This will likely become ValidateAsync later

                if (isValid && OnValidSubmit.HasDelegate)
                {
                    await OnValidSubmit.InvokeAsync(_fixedEditContext);
                }

                if (!isValid && OnInvalidSubmit.HasDelegate)
                {
                    await OnInvalidSubmit.InvokeAsync(_fixedEditContext);
                }
            }
        }
#pragma warning disable CA2007
        private async Task HandleSubmitAsync()
        {
            Debug.Assert(_extensibleEditContext != null);
            var isValid = _extensibleEditContext !.Validate();

            if (isValid)
            {
                if (OnValidSubmit.HasDelegate)
                {
                    await OnValidSubmit.InvokeAsync(_extensibleEditContext.RootEditContext);
                }

                await _extensibleEditContext.OnValidSubmit();
            }
            else
            {
                if (OnInvalidSubmit.HasDelegate)
                {
                    await OnInvalidSubmit.InvokeAsync(_extensibleEditContext.RootEditContext);
                }

                await _extensibleEditContext.OnInvalidSubmit();
            }
        }