コード例 #1
0
        public static ModelMetadataItemBuilder <TModel> RenderAction <TModel>([NotNull] this ModelMetadataItemBuilder <TModel> self, Func <HtmlHelper, IHtmlString> action)
        {
            self.Template("RenderAction");

            self.AddAction(
                m =>
            {
                var settings    = m.GetAdditionalSettingOrCreateNew <RenderActionSetting>();
                settings.Action = action;
            });

            return(self);
        }
コード例 #2
0
        private static ModelMetadataItemBuilder <string> MinimumLength([NotNull] ModelMetadataItemBuilder <string> self, int length, Func <string> errorMessage, Type errorMessageResourceType, string errorMessageResourceName)
        {
            self.AddAction(
                m =>
            {
                var stringLengthValidation = m.GetValidationOrCreateNew <StringLengthValidationMetadata>();

                stringLengthValidation.Minimum                  = length;
                stringLengthValidation.ErrorMessage             = errorMessage;
                stringLengthValidation.ErrorMessageResourceType = errorMessageResourceType;
                stringLengthValidation.ErrorMessageResourceName = errorMessageResourceName;
            });

            return(self);
        }
コード例 #3
0
        private static ModelMetadataItemBuilder <string> Expression([NotNull] ModelMetadataItemBuilder <string> self, string pattern, Func <string> errorMessage, Type errorMessageResourceType, string errorMessageResourceName)
        {
            self.AddAction(
                m =>
            {
                var regularExpressionValidation = m.GetValidationOrCreateNew <RegularExpressionValidationMetadata>();

                regularExpressionValidation.Pattern                  = pattern;
                regularExpressionValidation.ErrorMessage             = errorMessage;
                regularExpressionValidation.ErrorMessageResourceType = errorMessageResourceType;
                regularExpressionValidation.ErrorMessageResourceName = errorMessageResourceName;
            });

            return(self);
        }
コード例 #4
0
        public static ModelMetadataItemBuilder <string> AsUrl([NotNull] this ModelMetadataItemBuilder <string> self)
        {
            self.Template("Url");

            self.AddAction(
                m =>
            {
                if (m.GetValidation <RegularExpressionValidationMetadata>() != null)
                {
                    throw new InvalidOperationException(ExceptionMessages.CannotApplyUrlWhenThereIsAnActiveExpression);
                }
            });

            return(Expression(self, UrlExpression, ((UrlErrorMessageResourceType == null) && string.IsNullOrEmpty(UrlErrorMessageResourceName)) ? () => UrlErrorMessage : (Func <string>)null, UrlErrorMessageResourceType, UrlErrorMessageResourceName));
        }
コード例 #5
0
        private static ModelMetadataItemBuilder <TValue?> Range <TValue>([NotNull] this ModelMetadataItemBuilder <TValue?> self, TValue minimum, TValue maximum, Func <string> errorMessage, Type errorMessageResourceType, string errorMessageResourceName)
            where TValue : struct, IComparable
        {
            self.AddAction(
                m =>
            {
                var rangeValidation = m.GetValidationOrCreateNew <RangeValidationMetadata <TValue> >();

                rangeValidation.Minimum                  = minimum;
                rangeValidation.Maximum                  = maximum;
                rangeValidation.ErrorMessage             = errorMessage;
                rangeValidation.ErrorMessageResourceType = errorMessageResourceType;
                rangeValidation.ErrorMessageResourceName = errorMessageResourceName;
            });

            return(self);
        }
コード例 #6
0
        private static ModelMetadataItemBuilder <TValue> HtmlSelect <TValue>([NotNull] ModelMetadataItemBuilder <TValue> self, string templateName, string viewDataKey, Func <string> optionLabel)
        {
            self.AddAction(
                m =>
            {
                var selectableElementSetting = m.GetAdditionalSettingOrCreateNew <ModelMetadataItemSelectableElementSetting>();

                selectableElementSetting.ViewDataKey = viewDataKey;

                if (optionLabel != null)
                {
                    selectableElementSetting.OptionLabel = optionLabel;
                }

                m.TemplateName = templateName;
            });

            return(self);
        }