Esempio n. 1
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var valueName = string.IsNullOrEmpty(bindingContext.ModelName)
                ? bindingContext.ModelMetadata.Name
                : bindingContext.ModelName;

            if (string.IsNullOrEmpty(valueName))
            {
                return(Task.CompletedTask);
            }

            if (bindingContext.TryGetStringValue(valueName, out var value))
            {
                try
                {
                    bindingContext.ModelState.SetModelValue(value.ValueName, value.ValueProviderResult);
                    bindingContext.Result = ModelBindingResult.Success(OnConvert(bindingContext, value.Value));
                }
                catch (Exception ex)
                {
                    bindingContext.Result = ModelBindingResult.Failed();
                    bindingContext.ModelState.TryAddModelException(value.ValueName, ex);
                }

                return(Task.CompletedTask);
            }

            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var valueName = string.IsNullOrEmpty(bindingContext.ModelName)
                ? bindingContext.ModelMetadata.Name
                : bindingContext.ModelName;

            var limit  = PagingParameters.DefaultLimit;
            var cursor = PagingCursor.Start;

            if (bindingContext.TryGetValue <int>("limit", out var limitResult))
            {
                limit = limitResult.Value;
            }

            if (bindingContext.TryGetStringValue("cursor", out var cursorResult))
            {
                cursor = new PagingCursor(cursorResult.Value);
            }

            var pagingParameters = new PagingParameters(cursor, limit).Coerce();

            bindingContext.ModelState.MarkFieldValid(valueName);
            bindingContext.Result = ModelBindingResult.Success(pagingParameters);

            return(Task.CompletedTask);
        }