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;
                }
            }
        }