コード例 #1
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            // NOTE: when run in none-js mode, the recaptcha element value will be null and validation failed.
            var submittedValue = targetElement.GetSubmittedValue() as string;

            if (string.IsNullOrEmpty(submittedValue))
            {
                return(false);
            }

            var recaptchaElment = targetElement as RecaptchaElementBlock;

            if (recaptchaElment == null)
            {
                return(false);
            }

            var client    = new WebClient();
            var verifyUrl = RecaptchaVerifyBaseUrl
                            .AddQueryString("secret", recaptchaElment.SecretKey)
                            .AddQueryString("response", submittedValue);
            var responseString = client.DownloadString(verifyUrl);
            var result         = responseString.ToObject <RecaptchaResponse>();

            return(result.success);
        }
コード例 #2
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            // DateTime format: YYYY-MM-DDTHH:mmTZD(ISO-8601) "2018-01-01T14:06+07:00|2018-02-02T14:06+07:00"

            var submittedValues = (targetElement.GetSubmittedValue() as string[]);

            // if the value is null, then let the RequiredValidator do the work
            if (submittedValues == null)
            {
                return(true);
            }

            if (submittedValues.Length < 2)
            {
                return(false);
            }
            DateTime startDateTime;
            DateTime endDateTime;
            var      isStartDateValid = DateTime.TryParse(submittedValues[0], out startDateTime);
            var      isEndDateValid   = DateTime.TryParse(submittedValues[1], out endDateTime);

            if (!isStartDateValid || !isEndDateValid)
            {
                return(false);
            }
            var datetimeRangeBlock = targetElement as DateTimeRangeElementBlock;
            var pickerType         = (datetimeRangeBlock != null) ? (DateTimePickerType)datetimeRangeBlock.PickerType : DateTimePickerType.DateTimePicker;

            switch (pickerType)
            {
            case DateTimePickerType.DatePicker:
                return(endDateTime.Subtract(startDateTime).TotalDays > 0);
            }
            return(endDateTime.Subtract(startDateTime).TotalSeconds > 0);
        }
コード例 #3
0
 public override bool?Validate(IElementValidatable targetElement)
 {
     // if in js mode, the validation is done by an extenal service
     // if in non-js mode, just accept user input
     // so here, always return true
     return(true);
 }
コード例 #4
0
        /// <inheritdoc />
        public override IValidationModel BuildValidationModel(IElementValidatable targetElement)
        {
            var model = base.BuildValidationModel(targetElement);

            if (model != null)
            {
                model.Message = this.LocalizationService.GetString("/episerver/forms/validators/elementselfvalidator/unexpectedvalueisnotaccepted");
            }

            return(model);
        }
コード例 #5
0
        /// <inheritdoc />
        public override IValidationModel BuildValidationModel(IElementValidatable targetElement)
        {
            var model = base.BuildValidationModel(targetElement);

            if (model != null)
            {
                model.Message = this.LocalizationService.GetString("/episerver/forms/validators/episerver.forms.implementation.validation.datetimerangevalidator/message");
            }

            return(model);
        }
コード例 #6
0
        /// <inheritdoc />
        public override IValidationModel BuildValidationModel(IElementValidatable targetElement)
        {
            MultipleFileUploadElementBlock uploadElementBlock = targetElement as MultipleFileUploadElementBlock;

            if (uploadElementBlock == null)
            {
                return(base.BuildValidationModel(targetElement));
            }
            if (this._model == null)
            {
                MaxNumberOfFilesValidationModel sizeValidationModel = new MaxNumberOfFilesValidationModel();
                sizeValidationModel.MaxNoOfFiles = uploadElementBlock.MaxNumberOfFiles;
                string str = string.Format(this._validationService.Service.GetValidatorMessage(this.GetType(), ""), uploadElementBlock.MaxNumberOfFiles);
                sizeValidationModel.Message = str;
                this._model = (IValidationModel)sizeValidationModel;
            }
            return(this._model);
        }
コード例 #7
0
        public override bool?Validate(IElementValidatable targetElement)
        {
            // DateTime format: YYYY-MM-DDTHH:mmTZD(ISO-8601) "2018-01-01T14:06+07:00"
            var submittedValue = targetElement.GetSubmittedValue() as string;

            if (string.IsNullOrEmpty(submittedValue))
            {
                return(true);
            }

            DateTime dateTime;

            if (!DateTime.TryParse(submittedValue, out dateTime))
            {
                return(false);
            }

            return(true);
        }
コード例 #8
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            var submittedValue = targetElement.GetSubmittedValue() as string;

            if (string.IsNullOrEmpty(submittedValue))
            {
                return(true);
            }

            DateTime dateTime;

            if (DateTime.TryParse(submittedValue, out dateTime))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #9
0
        /// <inheritdoc />
        public override IValidationModel BuildValidationModel(IElementValidatable targetElement)
        {
            MultipleFileUploadElementBlock uploadElementBlock = targetElement as MultipleFileUploadElementBlock;

            if (uploadElementBlock == null)
            {
                return(base.BuildValidationModel(targetElement));
            }
            if (this._model == null)
            {
                var sizeValidationModel = new TotalMaxFileSizeValidationModel
                {
                    TotalSizeInBytes = uploadElementBlock.TotalSizeInBytes
                };
                string str = string.Format(this._validationService.Service.GetValidatorMessage(this.GetType(), ""), uploadElementBlock.TotalFileSize == 0 ? uploadElementBlock.TotalSizeInBytes / 1048576 : uploadElementBlock.TotalFileSize);
                sizeValidationModel.Message = str;
                this._model = (IValidationModel)sizeValidationModel;
            }
            return(this._model);
        }
コード例 #10
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            var submittedValues = (targetElement.GetSubmittedValue() as string[]);

            // if the value is null, then let the RequiredValidator do the work
            if (submittedValues == null)
            {
                return(true);
            }

            if (submittedValues.Length < 2)
            {
                return(false);
            }
            DateTime startDateTime;
            DateTime endDateTime;
            var      isStartDateValid = DateTime.TryParse(submittedValues[0], out startDateTime);
            var      isEndDateValid   = DateTime.TryParse(submittedValues[1], out endDateTime);

            if (!isStartDateValid || !isEndDateValid)
            {
                return(false);
            }
            var datetimeRangeBlock = targetElement as DateTimeRangeElementBlock;
            var pickerType         = (datetimeRangeBlock != null) ? (DateTimePickerType)datetimeRangeBlock.PickerType : DateTimePickerType.DateTimePicker;

            switch (pickerType)
            {
            case DateTimePickerType.TimePicker:
                var timeRegex = "^(0?[1-9]|1[012])(:[0-5]\\d) [APap][mM]$";
                if (!Regex.IsMatch(submittedValues[0].Replace("1900-01-01 ", string.Empty), timeRegex) || !Regex.IsMatch(submittedValues[1].Replace("1900-01-01 ", string.Empty), timeRegex))
                {
                    return(false);
                }
                break;

            case DateTimePickerType.DatePicker:
                return(endDateTime.Subtract(startDateTime).TotalDays > 0);
            }
            return(endDateTime.Subtract(startDateTime).TotalSeconds > 0);
        }
コード例 #11
0
        public override bool?Validate(IElementValidatable targetElement)
        {
            var submittedValue = targetElement.GetSubmittedValue() as string;

            if (string.IsNullOrEmpty(submittedValue))
            {
                return(true);
            }

            DateTime dateTime;

            if (!DateTime.TryParse(submittedValue, out dateTime))
            {
                return(false);
            }

            var timeRegex = "^(0?[1-9]|1[012])(:[0-5]\\d) [APap][mM]$";

            // when have JS a fake date "1900-01-01 " will be added to submitted value
            return(Regex.IsMatch(submittedValue.Replace("1900-01-01 ", string.Empty), timeRegex));
        }
コード例 #12
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            MultipleFileUploadElementBlock uploadElementBlock = targetElement as MultipleFileUploadElementBlock;

            if (uploadElementBlock == null)
            {
                return(true);
            }
            IEnumerable <HttpPostedFile> submittedValue = targetElement.GetSubmittedValue() as IEnumerable <HttpPostedFile>;

            if (submittedValue == null || submittedValue.Count() == 0)
            {
                return(true);
            }
            var flag = true;

            var numberOfFiles = submittedValue.Count();

            if (numberOfFiles > uploadElementBlock.MaxNumberOfFiles)
            {
                flag = false;
            }
            return(flag);
        }
コード例 #13
0
        /// <inheritdoc />
        public override bool?Validate(IElementValidatable targetElement)
        {
            MultipleFileUploadElementBlock uploadElementBlock = targetElement as MultipleFileUploadElementBlock;

            if (uploadElementBlock == null)
            {
                return(true);
            }
            IEnumerable <HttpPostedFile> submittedValue = targetElement.GetSubmittedValue() as IEnumerable <HttpPostedFile>;

            if (submittedValue == null || submittedValue.Count <HttpPostedFile>() == 0)
            {
                return(true);
            }
            var flag = true;

            var totalFileSizeBytes = submittedValue.Sum(x => x.ContentLength);

            if (totalFileSizeBytes > uploadElementBlock.TotalSizeInBytes)
            {
                flag = false;
            }
            return(flag);
        }