Ejemplo n.º 1
0
        private FileTypeDetectionResponse DetectFromBytes(byte[] bytes)
        {
            TimeMetricTracker.Restart();
            var fileTypeResponse = _fileTypeDetector.DetermineFileType(bytes);

            TimeMetricTracker.Stop();

            MetricService.Record(Metric.DetectFileTypeTime, TimeMetricTracker.Elapsed);
            return(fileTypeResponse);
        }
Ejemplo n.º 2
0
        private string RebuildFile()
        {
            byte[] protectedFile = null;

            Console.WriteLine($"Using Glasswall Version: {_glasswallVersionService.GetVersion()}");

            var file = File.ReadAllBytes(_config.InputPath);

            var fileType = _fileTypeDetector.DetermineFileType(file);

            Console.WriteLine($"Filetype Detected for {_config.FileId}: {fileType.FileTypeName}");

            string status;

            if (fileType.FileType == FileType.Unknown)
            {
                status = FileOutcome.Unmodified;
            }
            else
            {
                var protectedFileResponse = _fileProtector.GetProtectedFile(GetDefaultContentManagement(), fileType.FileTypeName, file);

                if (!string.IsNullOrWhiteSpace(protectedFileResponse.ErrorMessage))
                {
                    if (protectedFileResponse.IsDisallowed)
                    {
                        status = FileOutcome.Unmodified;
                    }
                    else
                    {
                        status = FileOutcome.Failed;
                    }
                }
                else
                {
                    protectedFile = protectedFileResponse.ProtectedFile;
                    status        = FileOutcome.Replace;
                }
            }

            Directory.CreateDirectory("/output");

            File.WriteAllBytes(_config.OutputPath, protectedFile ?? file);

            Console.WriteLine($"Status of {status} for {_config.FileId}");

            return(status);
        }