Esempio n. 1
0
        protected ValidateFileResponse LogResult(ValidateFileResult result, string message, string relativeFilePath)
        {
            var response = new ValidateFileResponse();

            switch (result)
            {
            case ValidateFileResult.Failed:
                Logger.Error(message);
                break;

            case ValidateFileResult.FileNotFound:
                Logger.Warning(message);
                break;

            case ValidateFileResult.Success:
                Logger.Success(message);
                break;

            case ValidateFileResult.NotProcessed:
                Logger.Info(message);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(result), result, null);
            }
            response.Result   = result;
            response.Message  = message;
            response.FileName = relativeFilePath;
            return(response);
        }
        public ValidateFileResponse Process(string relativeFilePath, SearchOption searchOption)
        {
            var response = new ValidateFileResponse();
            var message  = string.Empty;

            var fullFilePath  = string.Format(@"{0}{1}", _sitecoreWebRoot, relativeFilePath);
            var extensionToBe = string.Format(".{0}", ConfigEditOptions.Disable.ToFileExtension());

            if (!FindFileOnDisk(ref fullFilePath, extensionToBe))
            {
                return(LogResult(ValidateFileResult.FileNotFound, string.Format("Path to file " + fullFilePath + " does not exist"), relativeFilePath));
            }

            var file             = new FileInfo(fullFilePath);
            var currentExtension = file.Extension;

            if (IsExcludedExtension(currentExtension) || string.Equals(currentExtension, extensionToBe))
            {
                return(LogResult(ValidateFileResult.Success, string.Format("The file {0} has a valid extension of {1}", relativeFilePath, extensionToBe), relativeFilePath));
            }

            try
            {
                var indexStr            = ConfigEditOptions.Enable.ToFileExtension();
                var strIndexEnd         = fullFilePath.IndexOf(indexStr) + indexStr.Length;
                var configBasedFilePath = fullFilePath.Substring(0, strIndexEnd);

                file.CopyTo(string.Concat(configBasedFilePath, extensionToBe));
                file.Delete();

                return(LogResult(ValidateFileResult.Success, string.Format("File {0} renamed from to add .disabled extension", file.FullName), relativeFilePath));
            }
            catch (Exception ex)
            {
                return(LogResult(ValidateFileResult.Failed, string.Format("An error occurred editing the file {0} to the extension {1} - {2}",
                                                                          relativeFilePath, extensionToBe, ex.Message), relativeFilePath));
            }

            return(LogResult(ValidateFileResult.Failed, "Fallen trough", relativeFilePath));
        }
        public ActionResult Index(ValidateFileRequest request)
        {
            // List invalid file names.
            string[] badNames = { "P111111.pdf", "P222222.pdf", "P333333.pdf",
                                  "P444444.pdf", "P555555.pdf", "P666666.pdf",
                                  "P777777.pdf", "P888888.pdf", "P999999.pdf" };

            ValidateFileResponse validation;

            // Validate file.
            if (request.Length < 5)
            {
                validation = new ValidateFileResponse {
                    Accept = false, RejectReason = "The file is too small."
                };
            }
            else if (request.ContentType != "application/pdf")
            {
                validation = new ValidateFileResponse {
                    Accept = false, RejectReason = "The file is not a PDF."
                };
            }
            else if (badNames.Contains(request.Name))
            {
                validation = new ValidateFileResponse {
                    Accept = false, RejectReason = "The file name is invalid."
                };
            }
            else
            {
                validation = new ValidateFileResponse {
                    Accept = true
                };
            }

            return(Json(validation));
        }
Esempio n. 4
0
 public void Add(ValidateFileResponse result)
 {
     _responses.Add(result);
 }