public FileService(IFileProcessorFactory fileProcessorFactory, IConfigurationManager configurationManager) { _fileProcessorFactory = fileProcessorFactory; _configurationManager = configurationManager; ROOT_FOLDER_PATH = configurationManager.GetRootFolderPath(); }
public FilesExtensionConfigProvider(IOptions <FilesOptions> options, ILoggerFactory loggerFactory, IFileProcessorFactory fileProcessorFactory, INameResolver nameResolver) { _options = options; _loggerFactory = loggerFactory; _fileProcessorFactory = fileProcessorFactory; _nameResolver = nameResolver; }
private IFileService CreateFileService(string rootFolderPath, IFileProcessorFactory fileProcessorFactory) { var configManager = new Mock <IConfigurationManager>(); configManager.Setup(x => x.GetRootFolderPath()).Returns(rootFolderPath); return(new FileService(fileProcessorFactory, configManager.Object)); }
public TaskProcessor(List <IOption> options, IFileProcessorFactory processorFactory) : base(options) { _processorFactory = processorFactory; if (!ReadOptions(options)) { throw new ArgumentException($"Provided options are invalid, check command line"); } }
public FileTriggerBinding(IOptions <FilesOptions> options, ParameterInfo parameter, ILogger logger, IFileProcessorFactory fileProcessorFactory) { _options = options; _parameter = parameter; _logger = logger; _fileProcessorFactory = fileProcessorFactory; _attribute = parameter.GetCustomAttribute <FileTriggerAttribute>(inherit: false); _bindingDataProvider = BindingDataProvider.FromTemplate(_attribute.Path); _bindingContract = CreateBindingContract(); }
public FileListener(IOptions <FilesOptions> options, FileTriggerAttribute attribute, ITriggeredFunctionExecutor triggerExecutor, ILogger logger, IFileProcessorFactory fileProcessorFactory) { _options = options ?? throw new ArgumentNullException(nameof(options)); _attribute = attribute ?? throw new ArgumentNullException(nameof(attribute)); _triggerExecutor = triggerExecutor ?? throw new ArgumentNullException(nameof(triggerExecutor)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _fileProcessorFactory = fileProcessorFactory ?? throw new ArgumentNullException(nameof(fileProcessorFactory)); _cancellationTokenSource = new CancellationTokenSource(); if (string.IsNullOrEmpty(_options.Value.RootPath) || !Directory.Exists(_options.Value.RootPath)) { throw new InvalidOperationException(string.Format("Path '{0}' is invalid. FilesConfiguration.RootPath must be set to a valid directory location.", _options.Value.RootPath)); } _watchPath = Path.Combine(_options.Value.RootPath, _attribute.GetRootPath()); }
public AccountTransactionViewModel(IFileProcessorFactory processorFactory, IViewThreadExecutor viewThreadExecutor, IDataService dataService, IAccTransactionValidator validator) { var processorTable = processorFactory.ProcessorNames.ToDictionary(x => x, x => processorFactory.GetFileProcessor(x)); var details = processorFactory .ProcessorNames .Select(x => { var fileProcessor = processorFactory.GetFileProcessor(x); var allFileDetails = fileProcessor.GetAllFileNames() .Select(fileName => new FileDetailViewModel(fileName, dataService, viewThreadExecutor, fileProcessor, validator)) .ToArray(); return new ProcessorDetails(x, allFileDetails); }).ToList(); ProcessorDetails = new ListCollectionView(details); if(details.Count > 0) ProcessorDetails.MoveCurrentToPosition(0); }
public FileTriggerAttributeBindingProvider(IOptions <FilesOptions> options, ILoggerFactory loggerFactory, IFileProcessorFactory fileProcessorFactory) { _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = loggerFactory?.CreateLogger(LogCategories.CreateTriggerCategory("File")); _fileProcessorFactory = fileProcessorFactory ?? throw new ArgumentNullException(nameof(fileProcessorFactory)); }
public static void TestFixtureSetup(TestContext context) { _factory = new FileProcessorFactory(); }
public static async Task GeneratePreviewAsync( [QueueTrigger("generate-blob-preview-v2")] string id, int dequeueCount, [Blob("spitball-files/files/{QueueTrigger}")] CloudBlobDirectory directory, [Inject] IFileProcessorFactory factory, [Inject] IStatelessSession session, IBinder binder, ILogger log, CancellationToken token) { log.LogInformation($"receive preview for {id}"); if (dequeueCount > 2) { log.LogInformation($"try to process more then 2 times"); return; } var segment = await directory.ListBlobsSegmentedAsync(null); var originalBlob = (CloudBlockBlob)segment.Results.FirstOrDefault(f2 => f2.Uri.Segments.Last().StartsWith("file-")); if (originalBlob == null) { return; } var processor = factory.GetProcessor(originalBlob); if (processor is null) { log.LogError($"did not process id:{id}"); return; } try { await processor.ProcessFileAsync(long.Parse(id), originalBlob, binder, log, token); } catch (Cloudmersive.APIClient.NETCore.DocumentAndDataConvert.Client.ApiException ex) { if (ex.Message.Contains("virus")) { await session.Query <Core.Entities.Document>().Where(w => w.Id == long.Parse(id)) .UpdateBuilder() .Set(c => c.Status.State, x => ItemState.Deleted) .Set(c => c.Status.DeletedOn, x => DateTime.UtcNow) .Set(c => c.Status.FlagReason, x => "Virus") .UpdateAsync(token); foreach (var item in segment.Results.OfType <CloudBlockBlob>()) { await item.DeleteAsync(DeleteSnapshotsOption.IncludeSnapshots, AccessCondition.GenerateEmptyCondition(), new BlobRequestOptions(), new OperationContext(), token); } } originalBlob.Metadata["ErrorProcessCloudmersive"] = ex.Message; await originalBlob.SetMetadataAsync(); } catch (Exception ex) { originalBlob.Metadata["error"] = ex.Message; await originalBlob.SetMetadataAsync(); throw; } log.LogInformation("C# Blob trigger function Processed"); }
public FilesExtensionConfigProvider(IOptions <FilesOptions> options, ILoggerFactory loggerFactory, IFileProcessorFactory fileProcessorFactory) { _options = options; _loggerFactory = loggerFactory; _fileProcessorFactory = fileProcessorFactory; }
public HomeController(IFileProcessorFactory fileProcessorFactory) { _fileProcessorFactory = fileProcessorFactory; }