public override bool Validate() { ClearError(); if (Required && !FileWasPosted) { Error = GetRequiredMessage(); } else if (!string.IsNullOrEmpty(ValidExtensions)) { var exts = ValidExtensions.ToUpperInvariant().Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (var PostedFile in PostedFiles) { if (!exts.Contains(Path.GetExtension(PostedFile.FileName).ToUpperInvariant())) { Error = InvalidExtensionError; break; } } } FireValidated(); return(ErrorIsClear); }
void ProcessValidation() { bool skip = false; this.Validation = new ValidationObject(); if (MustBeImage && !string.IsNullOrEmpty(FullName)) { if (!FileHelper.IsImageFile(FullName)) { Validation = new ValidationObject(string.Empty, ValidationValue.IsWarnState, "Must be an image file."); skip = true; } } if (!skip && !string.IsNullOrEmpty(FullName)) { if (!string.IsNullOrEmpty(ValidExtensions) && (!ValidExtensions.ToUpperInvariant().Contains(new FileInfo(FullName).Extension.ToUpperInvariant() + ";") && ValidExtensions.ToUpperInvariant() != new FileInfo(FullName).Extension.ToUpperInvariant())) { Validation = new ValidationObject(string.Empty, ValidationValue.IsWarnState, "Not an expected extension."); skip = true; } } if (!skip && CheckFileExists && !string.IsNullOrEmpty(FullName)) { bool IsInvalid = false; if (!File.Exists(FullName)) { IsInvalid = true; if (!string.IsNullOrEmpty(AlternatePrefix)) { IsInvalid = !File.Exists(Path.Combine(AlternatePrefix, new FileInfo(FullName).Name)); } if (IsInvalid) { if (SearchPrefixes != null) { foreach (string src in SearchPrefixes) { int adjust = -1; if (!string.IsNullOrEmpty(Prefix)) { adjust = Prefix.Length; } string fle = Path.Combine(src, FullName.Substring(adjust + 1)); IsInvalid = !File.Exists(fle); if (!IsInvalid) { break; } } } } } if (IsInvalid) { Validation = new ValidationObject(string.Empty, ValidationValue.IsError, "File does not exist"); skip = true; } } }