Beispiel #1
0
 public LibraryDataAccess(ISpotiFireService spotiFireService, IRavenRepository ravenRepository, ILibraryValidator libraryValidator, ILibraryPersistenceService libraryPersistenceService)
 {
     _spotiFireService = spotiFireService;
     _libraryPersistenceService = libraryPersistenceService;
     _libraryValidator = libraryValidator;
     _ravenRepository = ravenRepository;
 }
        public UploadFileValidatorResult ValidateFile(
            string fileName,
            int contentLength,
            Stream inputStream,
            ILibraryValidator libraryValidator)
        {
            if (!fileName.EndsWith(".dll"))
            {
                return new UploadFileValidatorResult("Only .dll files are supported.");
            }

            if ((contentLength / 1024) / 1024 > 2)
            {
                return new UploadFileValidatorResult("Files should be less than 2MB.");
            }

            byte[] fileData;
            try
            {
                using (var binaryReader = new BinaryReader(inputStream))
                {
                    fileData = binaryReader.ReadBytes(contentLength);
                }
            }
            catch (Exception ex)
            {
                return new UploadFileValidatorResult($"File reading error: {ex.Message}");
            }

            Assembly assembly;
            try
            {
                assembly = Assembly.Load(fileData);
            }
            catch (Exception ex)
            {
                return new UploadFileValidatorResult($"Loading assembly failed: {ex.Message}");
            }

            if (libraryValidator != null)
            {
                var libraryValidatorResult = libraryValidator.Validate(assembly);
                if (!libraryValidatorResult.IsValid)
                {
                    return new UploadFileValidatorResult($"Library validation failed: {libraryValidatorResult.Error}");
                }
            }

            return new UploadFileValidatorResult(fileData);
        }
 public LibraryPersistenceService(ILibraryValidator libraryValidator, IRavenRepository ravenRepository)
 {
     _libraryValidator = libraryValidator;
     _ravenRepository = ravenRepository;
 }
 public SpotiFireServiceInterceptor(ILibraryValidator libraryValidator)
 {
     _libraryValidator = libraryValidator;
 }