示例#1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            string azureStorage = Configuration["PDFTEXTREADER_FRONTEND_STORAGE"];

            string configFullAccess = Configuration["PDFTEXTREADER_FRONTEND_FULLACCESS"];
            bool   hasFullAccess    = (configFullAccess != null) && Boolean.Parse(configFullAccess);

            string azureQueueConfig = Configuration["PDFTEXTREADER_FRONTEND_QUEUE"];

            services.Configure <CopyFilesConfig>(Configuration.GetSection("CopyFiles"));
            services.Configure <ImagesController.Config>(Configuration.GetSection("Images"));

            IVirtualFS2 virtualFS = (String.IsNullOrEmpty(azureStorage)) ?
                                    (IVirtualFS2) new WebVirtualFS() : new AzureFS(azureStorage);

            services.AddSingleton <IVirtualFS2>(virtualFS);

            if (azureQueueConfig != null)
            {
                services.AddSingleton(AzureQueue.OpenAsync(azureQueueConfig).Result);
                services.AddSingleton <JobManager>();
                services.AddSingleton <JobProcess>();
                services.AddSingleton <CopyFiles>();

                services.AddSingleton <IHostedService, JobManagerHostedService>();
            }

            services.AddSingleton <DownloadFolder>();
            services.AddTransient <PrettyTextFile>();
            services.AddSingleton <DeleteFiles>();

            services.AddSingleton(new AccessManager(virtualFS, hasFullAccess));
            services.AddMvc();
        }
示例#2
0
        public CopyFiles(IVirtualFS2 webFS, IOptions <CopyFilesConfig> config)
        {
            string sourceUrl = config.Value.StorageAccount;

            if (String.IsNullOrEmpty(sourceUrl))
            {
                throw new InvalidOperationException(nameof(sourceUrl));
            }

            this._webFS    = webFS;
            this._sourceFS = new AzureFS(sourceUrl, "pdf");
        }
示例#3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            string azureStorage = Configuration["PDFTEXTREADER_FRONTEND_STORAGE"];

            string configFullAccess = Configuration["PDFTEXTREADER_FRONTEND_FULLACCESS"];
            bool   hasFullAccess    = (configFullAccess != null) && Boolean.Parse(configFullAccess);

            IVirtualFS2 virtualFS = (String.IsNullOrEmpty(azureStorage)) ?
                                    (IVirtualFS2) new WebVirtualFS() : new AzureFS(azureStorage);

            services.AddSingleton(new AccessManager(virtualFS, hasFullAccess));
            services.AddMvc();
        }
示例#4
0
 public IndexModel(AccessManager amgr)
 {
     _vfs = amgr.GetReadOnlyFileSystem();
 }
示例#5
0
 public DownloadFolder(IVirtualFS2 vfs)
 {
     this._vfs = vfs;
 }
示例#6
0
 public InputFiles(IVirtualFS2 webFS)
 {
     this._webFS = webFS;
 }
示例#7
0
 public DeleteFiles(AccessManager amgr)
 {
     this._webFS = amgr.GetFullAccessFileSystem();
 }
示例#8
0
 public AccessManager(IVirtualFS2 virtualFS, bool hasFullAccess)
 {
     _virtualFS     = virtualFS;
     _hasFullAccess = hasFullAccess;
 }