예제 #1
1
파일: Program.cs 프로젝트: CoryGM/Security
        private static X509Certificate2 LoadCertificate()
        {
            var socialSampleAssembly = typeof(Startup).GetTypeInfo().Assembly;
            var embeddedFileProvider = new EmbeddedFileProvider(socialSampleAssembly, "SocialSample");
            var certificateFileInfo = embeddedFileProvider.GetFileInfo("compiler/resources/cert.pfx");
            using (var certificateStream = certificateFileInfo.CreateReadStream())
            {
                byte[] certificatePayload;
                using (var memoryStream = new MemoryStream())
                {
                    certificateStream.CopyTo(memoryStream);
                    certificatePayload = memoryStream.ToArray();
                }

                return new X509Certificate2(certificatePayload, "testPassword");
            }
        }
 public void Trigger_ShouldNot_Support_Registering_Callbacks()
 {
     var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);
     var trigger = provider.Watch("Resources/File.txt");
     Assert.NotNull(trigger);
     Assert.False(trigger.ActiveExpirationCallbacks);
     Assert.False(trigger.IsExpired);
 }
 public void Trigger_ShouldNot_Support_Registering_Callbacks()
 {
     var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);
     var token = provider.Watch("Resources/File.txt");
     Assert.NotNull(token);
     Assert.False(token.ActiveChangeCallbacks);
     Assert.False(token.HasChanged);
 }
        public void When_GetFileInfo_and_resource_does_not_exist_then_should_not_get_file_info()
        {
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            var fileInfo = provider.GetFileInfo("DoesNotExist.Txt");
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
        public void GetDirInfo_with_no_matching_base_namespace()
        {
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, "Unknown.Namespace");

            var files = provider.GetDirectoryContents(string.Empty);
            Assert.NotNull(files);
            Assert.True(files.Exists);
            Assert.Equal(0, files.Count());
        }
예제 #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            // ------------------------------------

            if (_ModuleManager.Modules != null)
            {
                foreach (ModuleBase module in _ModuleManager.Modules)
                {
                    Assembly             assembly          = module.GetType().Assembly;
                    string               resourceNamespace = assembly.GetName().Name;
                    EmbeddedFileProvider fileProvider      = new EmbeddedFileProvider(assembly);

                    foreach (ResourceInfo resourceInfo in module.Resources)
                    {
                        var options = new StaticFileOptions()
                        {
                            FileProvider = new EmbeddedFileProvider(assembly),
                            RequestPath  = "" //new PathString("/" + resourceInfo.Path)
                        };

                        app.UseStaticFiles(options);
                    }

                    //IDirectoryContents dirContents = fileProvider.GetDirectoryContents("");
                    //foreach (IFileInfo fileInfo in dirContents)
                    //{
                    //    Stream viewStream = assembly.GetManifestResourceStream(resourceNamespace + "." + fileInfo.Name);
                    //    TextReader reader = new StreamReader(viewStream);
                    //    string viewCode = reader.ReadToEnd();
                    //}
                }
            }

            // ------------------------------------

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
        public static string ReadResourceAsString(string resourceName)
        {
            string[]      names            = Assembly.GetAssembly(typeof(ResourceProvider)).GetManifestResourceNames();
            IFileProvider embeddedProvider = new EmbeddedFileProvider(Assembly.GetAssembly(typeof(ResourceProvider)), "GraphSchema.io.Client.Resources");

            using (var stream = embeddedProvider.GetFileInfo(resourceName).CreateReadStream()) {
                using (var reader = new StreamReader(stream, Encoding.UTF8)) {
                    return(reader.ReadToEnd());
                }
            }
        }
        public static void UseComponentLibraryScripts(this IApplicationBuilder builder)
        {
            var embeddedProvider = new EmbeddedFileProvider(typeof(ComponentLibrary.ViewComponents.NavComponent)
                                                            .GetTypeInfo().Assembly, "ComponentLibrary.Scripts");

            builder.UseStaticFiles(new StaticFileOptions()
            {
                FileProvider = embeddedProvider,
                RequestPath  = new PathString("/Scripts")
            });
        }
예제 #9
0
        /// <summary>
        /// Creates a template provider using an embedded file provider for the given assembly.
        /// </summary>
        /// <param name="assembly">The source assembly.</param>
        /// <param name="namespace">The base namespace.</param>
        /// <returns>The template provider.</returns>
        public static TemplateProvider FromAssembly(Assembly assembly, string @namespace)
        {
            if (assembly is null)
            {
                throw new ArgumentNullException(nameof(assembly));
            }

            var fileProvider = new EmbeddedFileProvider(assembly, $"{@namespace}.templates");

            return(new TemplateProvider(fileProvider));
        }
        private static IFileProvider BuildFileProvider()
        {
            var assembly             = typeof(GraphiQlExtensions).GetTypeInfo().Assembly;
            var embeddedFileProvider = new EmbeddedFileProvider(assembly, "graphiql.assets");

            var fileProvider = new CompositeFileProvider(
                embeddedFileProvider
                );

            return(fileProvider);
        }
예제 #11
0
        public GtkWindow(WindowConfiguration config, IUiFactory windowFactory)
        {
            if (windowFactory == null)
            {
                throw new ArgumentNullException(nameof(windowFactory));
            }

            this.config = config ?? throw new ArgumentNullException(nameof(config));

            var contentProvider = new EmbeddedFileProvider(config.ContentAssembly, config.ContentFolder);

            bridge  = new WebviewBridge();
            webview = new GtkWebview(config, contentProvider, bridge);
            Handle  = Gtk.Window.Create(GtkWindowType.Toplevel);

            Title = config.Title;
            Gtk.Window.SetResizable(Handle, config.CanResize);
            Gtk.Window.SetDefaultSize(Handle, config.Width, config.Height);

            string backgroundColor = config.BackgroundColor;

            if (string.IsNullOrWhiteSpace(backgroundColor))
            {
                backgroundColor = "#FFFFFF";
            }
            SetBackgroundColor(backgroundColor);

            IntPtr scroller = Gtk.Window.CreateScrolled(IntPtr.Zero, IntPtr.Zero);

            Gtk.Widget.ContainerAdd(Handle, scroller);
            Gtk.Widget.ContainerAdd(scroller, webview.Handle);

            // need to keep the delegates around or they will get garbage collected
            deleteDelegate  = DeleteCallback;
            destroyDelegate = DestroyCallback;

            GLib.ConnectSignal(Handle, "delete-event", deleteDelegate, IntPtr.Zero);
            GLib.ConnectSignal(Handle, "destroy", destroyDelegate, IntPtr.Zero);

            webview.CloseRequested += Webview_CloseRequested;

            if (config.EnableScriptInterface)
            {
                bridge.Init(this, webview, windowFactory);
            }

            if (config.UseBrowserTitle)
            {
                webview.TitleChanged += Webview_TitleChanged;
                bridge.TitleChanged  += Webview_TitleChanged;
            }

            SetIcon(config.Icon);
        }
예제 #12
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddApplicationInsightsTelemetry(Configuration);

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddCors(
                options => options.AddPolicy("AllowCors", builder =>
            {
                builder
                .AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials();
            }));

            // Add framework services.
            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver =
                    new CamelCasePropertyNamesContractResolver();
            });

            LogWriterFactory log       = new LogWriterFactory();
            LogWriter        logWriter = log.Create();

            Logger.SetLogWriter(logWriter, false);

            //---Adding scope for all classes
            services.AddSingleton <ILoggingHelper, LoggingHelper>(serviceProvider =>
            {
                return(new LoggingHelper(logWriter));
            });

            services.AddSingleton <IExceptionHelper, ExceptionHelper>(serviceProvider =>
            {
                return(new ExceptionHelper(logWriter));
            });

            // Infrastructure
            services.AddTransient <IDatabaseFactory <ReferenceDataDBContext>, DatabaseFactory <ReferenceDataDBContext> >();

            //---Adding scope for all classes
            services.AddScoped <IReferenceDataBusinessService, ReferenceDataBusinessService>();
            services.AddScoped <DataService.Interface.IReferenceDataDataService, DataService.ReferenceDataDataService>();
            services.AddScoped <IActionManagerDataService, ActionManagerDataService>();
            services.AddScoped <IUserRoleUnitDataService, UserRoleUnitDataService>();
            services.AddScoped <IConfigurationHelper, ConfigurationHelper>();
            var physicalProvider = hostingEnvironment.ContentRootFileProvider;
            var embeddedProvider = new EmbeddedFileProvider(Assembly.GetEntryAssembly());

            services.AddSingleton <IFileProvider>(embeddedProvider);
        }
예제 #13
0
 private void SetupEmbeddedViewsForPlugins(IServiceCollection services, IEnumerable <Assembly> pluginAssemblies)
 {
     services.Configure <RazorViewEngineOptions>(options =>
     {
         foreach (var assembly in pluginAssemblies)
         {
             var embeddedFile = new EmbeddedFileProvider(assembly);
             options.FileProviders.Add(embeddedFile);
         }
     });
 }
예제 #14
0
파일: Startup.cs 프로젝트: wwwK/FormFactory
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews()
            .AddRazorRuntimeCompilation(options => options.FileProviders.Add(
                                            new EmbeddedFileProvider(typeof(FormFactory.FF).GetTypeInfo().Assembly, nameof(FormFactory))
                                            ));

            var embeddedProvider = new EmbeddedFileProvider(typeof(FF).Assembly, nameof(FormFactory));

            services.AddSingleton <IFileProvider>(embeddedProvider);
        }
예제 #15
0
        // IFileProvider; 文件提供者相应的提供者

        // PhysicalFileProvider;
        // EmbeddedFileProvider;
        // CompositeFileProvider;

        public void ConfigureServices(IServiceCollection services)
        {
            IFileProvider physicalFileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory());
            IFileProvider embeddedFileProvider = new EmbeddedFileProvider(Assembly.GetEntryAssembly());

            // 组合文件系统
            // 装饰器模式
            IFileProvider compositeFileProvider = new CompositeFileProvider(physicalFileProvider, embeddedFileProvider);

            services.AddSingleton <IFileProvider>(compositeFileProvider);
        }
        public async Task UploadFile_FromFileProvider_ExpectedSkylink()
        {
            // Arrange
            var fileProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());

            // Act
            var skylink = await _skynetWebPortal.UploadFile(fileProvider, "assets/test-file.txt");

            // Assert
            Assert.That(skylink.ToString() == "AAAox419FTqN04JIo3urNNtyxwY9i61cZVnbwNlhGluwOQ");
        }
예제 #17
0
        private byte[] ObterLogoBanco(IBanco banco)
        {
            var embeddedProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());

            using (var reader = embeddedProvider.GetFileInfo($"logos/{banco.Codigo.ToString("000")}.bmp").CreateReadStream())
            {
                var logo = new byte[reader.Length];
                reader.Read(logo, 0, (int)reader.Length);
                return(logo);
            }
        }
예제 #18
0
    private string GetPartialViewMacroSnippetContent(string snippetName, PartialViewType partialViewType)
    {
        if (snippetName.IsNullOrWhiteSpace())
        {
            throw new ArgumentNullException(nameof(snippetName));
        }

        string partialViewHeader;

        switch (partialViewType)
        {
        case PartialViewType.PartialView:
            partialViewHeader = PartialViewHeader;
            break;

        case PartialViewType.PartialViewMacro:
            partialViewHeader = PartialViewMacroHeader;
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(partialViewType));
        }

        var snippetProvider =
            new EmbeddedFileProvider(GetType().Assembly, "Umbraco.Cms.Core.EmbeddedResources.Snippets");

        IFileInfo?file = snippetProvider.GetDirectoryContents(string.Empty)
                         .FirstOrDefault(x => x.Exists && x.Name.Equals(snippetName + ".cshtml"));

        // Try and get the snippet path
        if (file is null)
        {
            throw new InvalidOperationException("Could not load snippet with name " + snippetName);
        }

        using (var snippetFile = new StreamReader(file.CreateReadStream()))
        {
            var snippetContent = snippetFile.ReadToEnd().Trim();

            // strip the @inherits if it's there
            snippetContent = StripPartialViewHeader(snippetContent);

            // Update Model.Content to be Model when used as PartialView
            if (partialViewType == PartialViewType.PartialView)
            {
                snippetContent = snippetContent
                                 .Replace("Model.Content.", "Model.")
                                 .Replace("(Model.Content)", "(Model)");
            }

            var content = $"{partialViewHeader}{Environment.NewLine}{snippetContent}";
            return(content);
        }
    }
예제 #19
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            var physicalProvider  = _hostingEnvironment.ContentRootFileProvider;
            var embeddedProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider);

            // choose one provider to use for the app and register it
            //services.AddSingleton<IFileProvider>(physicalProvider);
            //services.AddSingleton<IFileProvider>(embeddedProvider);
            services.AddSingleton <IFileProvider>(compositeProvider);
        }
예제 #20
0
        public void ConfigureServices(IServiceCollection services)
        {
            var physicalProvider = HostingEnvironment.WebRootFileProvider;

            var embeddedProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
예제 #21
0
        public IEnumerable <Word> GetWords()
        {
            var wordJson         = string.Empty;
            var embeddedProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());

            using var stream = embeddedProvider.GetFileInfo("Resources/words.json").CreateReadStream();
            wordJson         = new StreamReader(stream).ReadToEnd();

            var words = JsonConvert.DeserializeObject <Word[]>(wordJson);

            return(words);
        }
예제 #22
0
        public static byte[] GetEmbeddedFile(this Assembly assembly, string path)
        {
            var fileProvider = new EmbeddedFileProvider(assembly);
            var fileInfo     = fileProvider.GetFileInfo(path);

            if (fileInfo?.Exists != true)
            {
                throw new ApplicationException($"Embedded file '{path}' not found in assembly {assembly.FullName}");
            }
            using (var stream = fileInfo.CreateReadStream())
                return(stream.ReadAll());
        }
예제 #23
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var physicalProvider  = HostingEnvironment.ContentRootFileProvider;
            var embeddedProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider);
            var scopeFactory      = services.BuildServiceProvider().GetServices <IServiceScopeFactory>().FirstOrDefault();
            var serviceProv       = services.BuildServiceProvider().GetServices <IServiceProvider>().FirstOrDefault();
            var logger            = services.BuildServiceProvider().GetServices <ILogger <AllEmptyPostCodesUpdateNowTask> >().FirstOrDefault();

            services.AddSingleton <IFileProvider>(compositeProvider);
            services.AddSingleton <IConfiguration>(Configuration);
            ConfigureContexts(services);
            services.AddIdentity <ApplicationUser, ApplicationRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();
            services.Configure <FormOptions>(options =>
            {
                options.MultipartBodyLengthLimit = 100000000;
            });

            // Add application services.

            services.AddTransient <IEmailSender, EmailSender>();
            services.AddTransient <PatientViewModel>();
            services.AddMvc();
            services.AddRouteAnalyzer();
            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver      = new CamelCasePropertyNamesContractResolver();
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                options.SerializerSettings.MaxDepth = 1;
            });
            Audit.Core.Configuration.Setup()
            .UseSqlServer(config => config
                          .ConnectionString(Configuration.GetConnectionString("DefaultConnection"))
                          .Schema("dbo")
                          .TableName("AuditEvents")
                          .IdColumnName("ID")
                          .JsonColumnName("Data")
                          .LastUpdatedColumnName("LastUpdatedDate"));
            ConfigurePdfService(services);
            services.AddScoped <IViewRenderService, ViewRenderService>();
            services.AddSingleton <IHostedService, PatientVoriconazoleLevelBackgruondTask>(); //monday
            services.AddSingleton <IHostedService, ImmunoglobulinUpdateBackgroundTask>();     //runs tuesday
            services.AddSingleton <IHostedService, EmptyPostCodesUpdateScheduledTask>();      //runs wednesday
            services.AddSingleton <IHostedService, PatientTestResultBackgroundUpdateTask>();  //thursday
            services.AddSingleton <IHostedService, PatientRadiologyUpdateBackgroundTask>();   //friday
            services.AddSingleton <IHostedService, PatientICD10DiagnosesBackgroundTask>();    //saturday
            services.AddSingleton <IHostedService, PatientSGRQImporterBackgroundTask>();      //saturday at 12:15
            services.AddSingleton <IHostedService, PatientAdministrationSystemStatusTask>();  //sunday
            services.AddHostedService <QueuedHostedService>();
            services.AddSingleton <IBackgroundTaskQueue, BackgroundTaskQueue>();
        }
예제 #24
0
        private string LoadEmbeddedTemplate(IChallengeTemplateOptions options)
        {
            var assembly = options.GetType().Assembly;

            _logger.LogTrace("Loading embedded template {name} from {assembly}", options.TemplateName, assembly.GetName().Name);

            using var stream = new EmbeddedFileProvider(assembly, typeof(ChallengeTemplateService).Namespace)
                               .GetFileInfo(GetTemplateFileName(options.TemplateName)).CreateReadStream();

            using var reader = new StreamReader(stream);
            return(reader.ReadToEnd());
        }
        public async Task <int> OnExecuteAsync()
        {
            var fileProvider = new EmbeddedFileProvider(typeof(AttributionsCommand).Assembly);
            var attributions = fileProvider.GetFileInfo("Properties.ATTRIBUTIONS.txt");

            using (var streamReader = new StreamReader(attributions.CreateReadStream()))
            {
                _logger.LogInformation(await streamReader.ReadToEndAsync());
            }

            return(0);
        }
예제 #26
0
        public static IEnumerable <IFileInfo> GetResources(this Assembly assembly, string name, bool ignoreCase = false)
        {
            List <IFileInfo> files = new List <IFileInfo>();
            var embedded           = new EmbeddedFileProvider(assembly);
            var resources          = embedded.GetDirectoryContents("/").Where(x => x.Name.Contains(name, ignoreCase));

            foreach (var resource in resources)
            {
                files.Add(resource);
            }
            return(files);
        }
예제 #27
0
        private static void RegisterDependencies(WebAssemblyHostBuilder builder)
        {
            var services = builder.Services;

            var fileProvider  = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());
            var configuration = builder.Configuration
                                .AddJsonFile(provider: fileProvider, path: "appsettings.json", optional: true, reloadOnChange: false)
                                .Build();

            services.AddSingleton <IConfiguration>(configuration);
            services.AddSingleton <DevToolService>();
        }
예제 #28
0
        public static IEnumerable <Stream> GetResourcesAsStream(this Assembly assembly, Regex regex)
        {
            List <Stream> files     = new List <Stream>();
            var           embedded  = new EmbeddedFileProvider(assembly);
            var           resources = embedded.GetDirectoryContents("/").Where(x => regex.IsMatch(x.Name));

            foreach (var resource in resources)
            {
                files.Add(resource.CreateReadStream());
            }
            return(files);
        }
        public void GetFileInfo_ReturnsNotFoundFileInfo_IfFileDoesNotExistUnderSpecifiedNamespace()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().Assembly, Namespace + ".SubNamespace");

            // Act
            var fileInfo = provider.GetFileInfo("File.txt");

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
        public void GetDirectoryContents()
        {
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace + ".Resources");

            var files = provider.GetDirectoryContents("");
            Assert.NotNull(files);
            Assert.Equal(2, files.Count());
            Assert.False(provider.GetDirectoryContents("file").Exists);
            Assert.False(provider.GetDirectoryContents("file/").Exists);
            Assert.False(provider.GetDirectoryContents("file.txt").Exists);
            Assert.False(provider.GetDirectoryContents("file/txt").Exists);
        }
예제 #31
0
        public FileProvider(Kernel kernel)
        {
            if (kernel == null)
            {
                throw new ArgumentNullException(nameof(kernel));
            }

            _root = new EmbeddedFileProvider(typeof(FileProvider).Assembly);
            _eventSubscription = kernel.KernelEvents
                                 .OfType <KernelExtensionLoaded>()
                                 .Subscribe(@event => RegisterExtension(@event.KernelExtension));
        }
예제 #32
0
        public static IEnumerable <IFileInfo> GetResources(this Assembly assembly)
        {
            List <IFileInfo> files = new List <IFileInfo>();
            var embedded           = new EmbeddedFileProvider(assembly);
            var resources          = embedded.GetDirectoryContents("/");

            foreach (var resource in resources)
            {
                files.Add(resource);
            }
            return(files);
        }
        public void GetFileInfo_ReturnsNotFoundFileInfo_IfFileDoesNotExistUnderSpecifiedNamespace()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace + ".SubNamespace");
          
            // Act
            var fileInfo = provider.GetFileInfo("File.txt");

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
        public void GetFileInfo_ReturnsNotFoundIfPathStartsWithBackSlash()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().Assembly);

            // Act
            var fileInfo = provider.GetFileInfo("\\File.txt");

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
예제 #35
0
        public static void UseAjaxSpa(this IApplicationBuilder app)
        {
            var embeddedProvider =
                new EmbeddedFileProvider(typeof(AjaxSpaMvcCore.AjaxSpaRequestHandlerExtension)
                                         .Assembly, "AjaxSpaMvcCore.Resources");

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = embeddedProvider,
                RequestPath  = "/AjaxSpaResource"
            });
        }
예제 #36
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            services.AddRazorPages();
            services.Configure <DataSourceOptions>(Configuration.GetSection("DataSource"));
            services.AddSingleton <IRestrictedDataService, RestrictedDataService>();
            var physicalFileProvider  = new PhysicalFileProvider(Directory.GetCurrentDirectory());
            var embeddedFileProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeFileProvider = new CompositeFileProvider(physicalFileProvider, embeddedFileProvider);

            services.AddSingleton <IFileProvider>(compositeFileProvider);
        }
        public void GetFileInfo_ReturnsNotFoundFileInfo_IfFileDoesNotExist()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().Assembly);

            // Act
            var fileInfo = provider.GetFileInfo("DoesNotExist.Txt");

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
예제 #38
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();

            var physicalProvider = _hostingEnvironment.ContentRootFileProvider;
            var embeddedProvider = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider);

            // choose one provider to use for the app and register it
            //services.AddSingleton<IFileProvider>(physicalProvider);
            //services.AddSingleton<IFileProvider>(embeddedProvider);
            services.AddSingleton<IFileProvider>(compositeProvider);
        }
        public void GetFileInfo_ReturnsFilesAtRoot(string filePath)
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);
            var expectedFileLength = 8;

            // Act
            var fileInfo = provider.GetFileInfo(filePath);

            // Assert
            Assert.NotNull(fileInfo);
            Assert.True(fileInfo.Exists);
            Assert.NotEqual(default(DateTimeOffset), fileInfo.LastModified);
            Assert.Equal(expectedFileLength, fileInfo.Length);
            Assert.False(fileInfo.IsDirectory);
            Assert.Null(fileInfo.PhysicalPath);
            Assert.Equal("File.txt", fileInfo.Name);
        }
        public void Watch_ReturnsNoOpTrigger()
        {
            // Arange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            // Act
            var token = provider.Watch("Resources/File.txt");

            // Assert
            Assert.NotNull(token);
            Assert.False(token.ActiveChangeCallbacks);
            Assert.False(token.HasChanged);
            Assert.Throws<NotSupportedException>(() => token.RegisterChangeCallback(_ => { }, new object()));
        }
        public void Watch_ReturnsNoOpTrigger()
        {
            // Arange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            // Act
            var token = provider.Watch("Resources/File.txt");

            // Assert
            Assert.NotNull(token);
            Assert.False(token.ActiveChangeCallbacks);
            Assert.False(token.HasChanged);
        }
예제 #42
0
파일: Startup.cs 프로젝트: pakrym/signoffs
 public void Configure_FileServerEmbeddedDefaultFiles(IApplicationBuilder app)
 {
     var fs = new EmbeddedFileProvider(this.GetType().GetTypeInfo().Assembly, "StaticFilesSignoff.wwwroot");;
     app.UseDefaultFiles(new DefaultFilesOptions()
     {
         DefaultFileNames = new[] { "TextFile.txt" },
         FileProvider = fs
     });
     app.UseStaticFiles(new StaticFileOptions()
     {
         FileProvider = fs,
     });
 }
        public void GetFileInfo_LocatesFilesUnderSubDirectories(string path)
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            // Act
            var fileInfo = provider.GetFileInfo(path);

            // Assert
            Assert.NotNull(fileInfo);
            Assert.True(fileInfo.Exists);
            Assert.NotEqual(default(DateTimeOffset), fileInfo.LastModified);
            Assert.True(fileInfo.Length > 0);
            Assert.False(fileInfo.IsDirectory);
            Assert.Null(fileInfo.PhysicalPath);
            Assert.Equal("File.txt", fileInfo.Name);
        }
        public void When_GetFileInfo_and_resource_exists_in_root_then_should_get_file_info()
        {
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);
            var expectedFileLength = new FileInfo("File.txt").Length;
            var fileInfo = provider.GetFileInfo("File.txt");
            Assert.NotNull(fileInfo);
            Assert.True(fileInfo.Exists);
            Assert.NotEqual(default(DateTimeOffset), fileInfo.LastModified);
            Assert.Equal(expectedFileLength, fileInfo.Length);
            Assert.False(fileInfo.IsDirectory);
            Assert.Null(fileInfo.PhysicalPath);
            Assert.Equal("File.txt", fileInfo.Name);

            //Passing in a leading slash
            fileInfo = provider.GetFileInfo("/File.txt");
            Assert.NotNull(fileInfo);
            Assert.True(fileInfo.Exists);
            Assert.NotEqual(default(DateTimeOffset), fileInfo.LastModified);
            Assert.Equal(expectedFileLength, fileInfo.Length);
            Assert.False(fileInfo.IsDirectory);
            Assert.Null(fileInfo.PhysicalPath);
            Assert.Equal("File.txt", fileInfo.Name);
        }
		public MiniWebAdminMiddleware(RequestDelegate next, IMiniWebSite miniWeb)
		{
			_miniWebSite = miniWeb;
			_next = next;
			_provider = new EmbeddedFileProvider(this.GetType().GetTypeInfo().Assembly, this.GetType().Namespace);
		}
        public void GetDirectoryContents_ReturnsAllFilesInFileSystem(string path)
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace + ".Resources");

            // Act
            var files = provider.GetDirectoryContents(path);

            // Assert
            Assert.Collection(files.OrderBy(f => f.Name, StringComparer.Ordinal),
                file => Assert.Equal("File.txt", file.Name),
                file => Assert.Equal("ResourcesInSubdirectory.File3.txt", file.Name));

            Assert.False(provider.GetDirectoryContents("file").Exists);
            Assert.False(provider.GetDirectoryContents("file/").Exists);
            Assert.False(provider.GetDirectoryContents("file.txt").Exists);
            Assert.False(provider.GetDirectoryContents("file/txt").Exists);
        }
        public void GetDirectoryContents_ReturnsEmptySequence_IfResourcesDoNotExistUnderNamespace()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, "Unknown.Namespace");

            // Act
            var files = provider.GetDirectoryContents(string.Empty);

            // Assert
            Assert.NotNull(files);
            Assert.True(files.Exists);
            Assert.Empty(files);
        }
        public void GetDirectoryContents_ReturnsNotFoundDirectoryContents_IfHierarchicalPathIsSpecified(string path)
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            // Act
            var files = provider.GetDirectoryContents(path);

            // Assert
            Assert.NotNull(files);
            Assert.False(files.Exists);
            Assert.Empty(files);
        }
예제 #49
0
        private static Scripts CopyEmbeddedScriptFilesToDisk()
        {
            var embeddedFileNames = new[] { "RemotePSSessionHelper.ps1", "StartServer.ps1", "StopServer.ps1" };

            // Copy the scripts from this assembly's embedded resources to the temp path on the machine where these
            // tests are being run
            var embeddedFileProvider = new EmbeddedFileProvider(
                typeof(RemoteWindowsDeployer).GetTypeInfo().Assembly,
                "Microsoft.AspNetCore.Server.Testing.Deployers.RemoteWindowsDeployer");

            var filesOnDisk = new string[embeddedFileNames.Length];
            for (var i = 0; i < embeddedFileNames.Length; i++)
            {
                var embeddedFileName = embeddedFileNames[i];
                var physicalFilePath = Path.Combine(Path.GetTempPath(), embeddedFileName);
                var sourceStream = embeddedFileProvider
                    .GetFileInfo(embeddedFileName)
                    .CreateReadStream();

                using (sourceStream)
                {
                    var destinationStream = File.Create(physicalFilePath);
                    using (destinationStream)
                    {
                        sourceStream.CopyTo(destinationStream);
                    }
                }

                filesOnDisk[i] = physicalFilePath;
            }

            var scripts = new Scripts(filesOnDisk[0], filesOnDisk[1], filesOnDisk[2]);

            return scripts;
        }
        public void GetFileInfo_ReturnsNotFoundIfPathStartsWithBackSlash()
        {
            // Arrange
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);
          
            // Act
            var fileInfo = provider.GetFileInfo("\\File.txt");

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
예제 #51
-1
        public void When_GetFileInfo_and_resources_in_path_then_should_get_file_infos()
        {
            var provider = new EmbeddedFileProvider(GetType().GetTypeInfo().Assembly, Namespace);

            var fileInfo = provider.GetFileInfo("Resources/File.txt");
            Assert.NotNull(fileInfo);
            Assert.True(fileInfo.Exists);
            Assert.NotEqual(default(DateTimeOffset), fileInfo.LastModified);
            Assert.True(fileInfo.Length > 0);
            Assert.False(fileInfo.IsDirectory);
            Assert.Null(fileInfo.PhysicalPath);
            Assert.Equal("File.txt", fileInfo.Name);
        }