public PluginCompositeFileProvider(IPluginManager pluginManager, IFileProvider defaultFileProvider, string subfolder=null)
 {
     var pluginsFileProviders = new List<IFileProvider>(pluginManager.LoadedPlugins.Count()+1);
     pluginsFileProviders.Add(defaultFileProvider);
     pluginsFileProviders.AddRange(GetPluginFileProviders(pluginManager, subfolder));
     _fileProvider = new CompositeFileProvider(pluginsFileProviders);
 }
        public void GetFileInfo_ReturnsNotFoundFileInfo_IfFileDoesNotExist()
        {
            // Arrange
            var provider = new CompositeFileProvider(new MockFileProvider(new MockFileInfo("DoesExist.txt")));

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

            // Assert
            Assert.NotNull(fileInfo);
            Assert.False(fileInfo.Exists);
        }
        // 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();

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

            services.AddSingleton <IFileProvider>(compositeProvider);
            #endregion
        }
Example #4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection 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);
        }
Example #5
0
        /// <summary>
        /// Initializes a new instance of <see cref="DefaultRazorViewEngineFileProviderAccessor"/>.
        /// </summary>
        /// <param name="optionsAccessor">Accessor to <see cref="RazorViewEngineOptions"/>.</param>
        public DefaultRazorViewEngineFileProviderAccessor(IOptions <RazorViewEngineOptions> optionsAccessor)
        {
            var fileProviders = optionsAccessor.Value.FileProviders;

            if (fileProviders.Count == 1)
            {
                FileProvider = fileProviders[0];
            }
            else
            {
                FileProvider = new CompositeFileProvider(fileProviders);
            }
        }
Example #6
0
        public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfNoFileProviderSpecified()
        {
            // Arrange
            var provider = new CompositeFileProvider();

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

            // Assert
            Assert.NotNull(files);
            Assert.False(files.Exists);
            Assert.Empty(files);
        }
Example #7
0
        public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfResourcesDoNotExist()
        {
            // Arrange
            var provider = new CompositeFileProvider();

            // Act
            var files = provider.GetDirectoryContents("DoesNotExist");

            // Assert
            Assert.NotNull(files);
            Assert.False(files.Exists);
            Assert.Empty(files);
        }
        public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfNoFileProviderSpecified()
        {
            // Arrange
            var provider = new CompositeFileProvider();

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

            // Assert
            Assert.NotNull(files);
            Assert.False(files.Exists);
            Assert.Empty(files);
        }
Example #9
0
        public void Watch_ReturnsNoopChangeToken_IfNoWatcherReturnedByFileProviders()
        {
            // Arrange
            var provider = new CompositeFileProvider(
                new MockFileProvider());

            // Act
            var changeToken = provider.Watch("DoesntExist*Pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.False(changeToken.ActiveChangeCallbacks);
        }
Example #10
0
        public ResourceLoader(WebControlsOptions options)
        {
            this.Options = options;

            List <IFileProvider> embeddedFileProviders = new List <IFileProvider>();

            foreach (var controlLibrary in this.Options.ControlLibraries)
            {
                embeddedFileProviders.Add(new EmbeddedFileProvider(controlLibrary));
            }

            this.FileProvider = new CompositeFileProvider(embeddedFileProviders);
        }
        public void GetDirectoryContents_ReturnsNonExistingEmptySequence_IfResourcesDoNotExist()
        {
            // Arrange
            var provider = new CompositeFileProvider();

            // Act
            var files = provider.GetDirectoryContents("DoesNotExist");

            // Assert
            Assert.NotNull(files);
            Assert.False(files.Exists);
            Assert.Empty(files);
        }
Example #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.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);
        }
Example #13
0
        public ModuleRazorFileProvider(string rootPath, params string[] pluginHosts)
        {
            if (_paths != null)
            {
                return;
            }

            lock (_synLock)
            {
                if (_paths == null)
                {
                    _paths = new Dictionary <string, string>();

                    var replacePath = rootPath.Replace("\\", "/");
                    foreach (var pluginHost in pluginHosts)
                    {
                        Directory.GetFiles(Path.Combine(rootPath, pluginHost), "*" + RazorViewEngine.ViewExtension, SearchOption.AllDirectories)
                        .Select(x => x.Replace("\\", "/"))
                        .ToList()
                        .ForEach(x =>
                        {
                            _paths.Add(x.Replace(replacePath, string.Empty), x);
                        });
                    }
                }

                var roots = new HashSet <string>();

                foreach (var path in _paths.Values.Where(p => p.Contains("/Pages/") && !p.StartsWith("/Pages/")))
                {
                    roots.Add(path.Substring(0, path.IndexOf("/Pages/")));
                }

                if (roots.Count > 0)
                {
                    _pagesFileProvider = new CompositeFileProvider(roots.Select(r => new PhysicalFileProvider(r)));
                }
            }

            if (_pluginHosts == null)
            {
                lock (_synLock)
                {
                    if (_pluginHosts == null)
                    {
                        _pluginHosts = pluginHosts;
                    }
                }
            }
        }
Example #14
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            #region snippet1
            var physicalProvider         = _env.ContentRootFileProvider;
            var manifestEmbeddedProvider =
                new ManifestEmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider =
                new CompositeFileProvider(physicalProvider, manifestEmbeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);
            #endregion
        }
Example #15
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();

            #region snippet1
            var physicalProvider         = _env.ContentRootFileProvider;
            var manifestEmbeddedProvider =
                new ManifestEmbeddedFileProvider(typeof(Program).Assembly);
            var compositeProvider =
                new CompositeFileProvider(physicalProvider, manifestEmbeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);
            #endregion
        }
        public static PasswordlessLoginBuilder AddCustomEmailTemplates(this PasswordlessLoginBuilder builder, string templateOverrideFolder, CultureInfo[] supportedCultures = null)
        {
            if (!Directory.Exists(templateOverrideFolder ?? throw new ArgumentNullException(nameof(templateOverrideFolder))))
            {
                throw new Exception($"Custom email template folder '{templateOverrideFolder}' does not exist.");
            }

            IFileProvider templateFileProvider = new CompositeFileProvider(
                new PhysicalFileProvider(templateOverrideFolder),
                TemplateFileProvider
                );


            return(builder.AddEmailTemplates(templateFileProvider, supportedCultures, true));
        }
Example #17
0
        /// <summary>
        /// Uses the MVC.
        /// </summary>
        /// <returns></returns>
        protected virtual IModule UseMvc()
        {
            var assembly     = GetType().GetTypeInfo().Assembly;
            var assemblyPath = new Uri(assembly.CodeBase).LocalPath;

            MvcBuilder.AddApplicationPart(Assembly.Load(new AssemblyName(Path.GetFileNameWithoutExtension(assemblyPath))));

            var fileProvider = new CompositeFileProvider(new EmbeddedFileProvider(assembly));

            ServiceCollection.Configure <RazorViewEngineOptions>(options =>
            {
                options.FileProviders.Add(fileProvider);
            });
            return(this);
        }
        public void Watch_CompositeChangeToken_RegisterChangeCallbackCorrectlyTransmitsAllParameters()
        {
            // Arrange
            var firstChangeToken = new MockChangeToken {
                ActiveChangeCallbacks = true
            };
            var secondChangeToken = new MockChangeToken();
            var thirdChangeToken  = new MockChangeToken {
                ActiveChangeCallbacks = true
            };
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new KeyValuePair <string, IChangeToken>("pattern", firstChangeToken),
                    new KeyValuePair <string, IChangeToken>("2ndpattern", secondChangeToken)),
                new MockFileProvider(new KeyValuePair <string, IChangeToken>("pattern", thirdChangeToken)));

            // Act
            var changeToken = provider.Watch("pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.True(changeToken.ActiveChangeCallbacks);
            Assert.False(changeToken.HasChanged);

            // Register callback
            Assert.Equal(0, firstChangeToken.Callbacks.Count);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(0, thirdChangeToken.Callbacks.Count);
            var    hasBeenCalled = false;
            object result        = null;
            object state         = new object();

            changeToken.RegisterChangeCallback(item =>
            {
                hasBeenCalled = true;
                result        = item;
            }, state);
            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.Same(state, firstChangeToken.Callbacks[0].Item2);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.Same(state, thirdChangeToken.Callbacks[0].Item2);
            var expectedResult = new object();

            firstChangeToken.RaiseCallback(expectedResult);
            Assert.True(hasBeenCalled);
            Assert.Equal(expectedResult, result);
        }
Example #19
0
        public void Test1()
        {
            //Microsoft.Extensions.FileProviders.Composite.CompositeDirectoryContents
            //    Microsoft.Extensions.FileProviders.NotFoundDirectoryContents
            //Microsoft.Extensions.FileProviders.Internal.PhysicalDirectoryContents
            //Microsoft.Extensions.FileProviders.PhysicalFileProvider
            var sss1 = new EmbeddedFileProvider(typeof(UnitTest1).Assembly);
            //var sss2 = new ManifestEmbeddedFileProvider(typeof(UnitTest1).Assembly);
            var sss3 = new PhysicalFileProvider(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\");
            var sss4 = new NullFileProvider();
            var sss5 = new FileStorage.StoreFileProvider(new FileStorage.Standard.PhysicalFileSystemStore(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\"));
            var sss6 = new FileStorage.StoreFileProvider(new FileStorage.Standard.FileSystemStore(@"D:\Users\mccj\Source\Repos\FileManager\FileManager\"));
            var sss7 = new CompositeFileProvider(sss1, sss3, sss4, sss5, sss6);

            var sdfsd = sss4.Watch("");
            var rr    = sss4.GetFileInfo("");

            var sss11  = sss3.GetFileInfo("aaaa");
            var sssd11 = sss5.GetFileInfo("aaaa");
            var sssc11 = sss6.GetFileInfo("aaaa");

            var sss113  = sss3.GetFileInfo("FileProviderStore");
            var sssd113 = sss5.GetFileInfo("FileProviderStore");
            var sssd213 = sss6.GetFileInfo("FileProviderStore");

            var sss112  = sss3.GetFileInfo("ApplicationBuilderExtensions.cs");
            var sssd112 = sss5.GetFileInfo("ApplicationBuilderExtensions.cs");
            var sssc112 = sss6.GetFileInfo("ApplicationBuilderExtensions.cs");


            var sss  = sss3.GetDirectoryContents("");
            var sssd = sss5.GetDirectoryContents("");
            var sssc = sss6.GetDirectoryContents("");

            var sss75 = sss3.GetDirectoryContents("aaaaa");
            var sssd5 = sss5.GetDirectoryContents("aaaaa");
            var sssdc = sss6.GetDirectoryContents("aaaaa");

            var sss76  = sss3.GetDirectoryContents("FileProviderStore");
            var sssd6  = sss5.GetDirectoryContents("FileProviderStore");
            var sssdcc = sss6.GetDirectoryContents("FileProviderStore");


            var sdsdasd = sss7.GetDirectoryContents("");
            //sss6.GetDirectoryContents("");
            //sss6.GetFileInfo("");
        }
        public void Watch_CompositeChangeToken_RegisterChangeCallbackReturnsACompositeDisposable()
        {
            // Arrange
            var firstChangeToken = new MockChangeToken {
                ActiveChangeCallbacks = true
            };
            var secondChangeToken = new MockChangeToken();
            var thirdChangeToken  = new MockChangeToken {
                ActiveChangeCallbacks = false
            };
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new KeyValuePair <string, IChangeToken>("pattern", firstChangeToken),
                    new KeyValuePair <string, IChangeToken>("2ndpattern", secondChangeToken)),
                new MockFileProvider(new KeyValuePair <string, IChangeToken>("pattern", thirdChangeToken)));

            // Act
            var changeToken = provider.Watch("pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.True(changeToken.ActiveChangeCallbacks);
            Assert.False(changeToken.HasChanged);

            // Register callback
            Assert.Equal(0, firstChangeToken.Callbacks.Count);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(0, thirdChangeToken.Callbacks.Count);
            object result     = null;
            object state      = new object();
            var    disposable = changeToken.RegisterChangeCallback(item =>
            {
                result = item;
            }, state);

            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.False(firstChangeToken.Callbacks[0].Item3.Disposed);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.False(thirdChangeToken.Callbacks[0].Item3.Disposed);
            disposable.Dispose();
            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.True(firstChangeToken.Callbacks[0].Item3.Disposed);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.True(thirdChangeToken.Callbacks[0].Item3.Disposed);
        }
Example #21
0
        /// <summary>
        /// Initializes a new instance of <see cref="ShapeTemplateFileProviderAccessor"/>.
        /// </summary>
        /// <param name="optionsAccessor">Accessor to <see cref="FluidViewOptions"/>.</param>
        public ShapeTemplateFileProviderAccessor(IOptions <ShapeTemplateOptions> optionsAccessor)
        {
            var fileProviders = optionsAccessor.Value.FileProviders;

            if (fileProviders.Count == 0)
            {
                FileProvider = new NullFileProvider();
            }
            else if (fileProviders.Count == 1)
            {
                FileProvider = fileProviders[0];
            }
            else
            {
                FileProvider = new CompositeFileProvider(fileProviders);
            }
        }
Example #22
0
        /// <summary>
        /// Initializes a new instance of <see cref="LiquidViewFileProviderAccessor"/>.
        /// </summary>
        /// <param name="optionsAccessor">Accessor to <see cref="LiquidViewOptions"/>.</param>
        public LiquidViewFileProviderAccessor(IOptions <LiquidViewOptions> optionsAccessor)
        {
            var fileProviders = optionsAccessor.Value.FileProviders;

            if (fileProviders.Count == 0)
            {
                FileProvider = new NullFileProvider();
            }
            else if (fileProviders.Count == 1)
            {
                FileProvider = fileProviders[0];
            }
            else
            {
                FileProvider = new CompositeFileProvider(fileProviders);
            }
        }
        public ExtensionsFileProviderAggregator(ILoggerFactory loggerFactory, IEnumerable <IExtension> extensions, IFileProvider provdier)
        {
            this.loggerFactory = loggerFactory;

            var extensionProviders = new List <IFileProvider>();

            foreach (var extension in extensions)
            {
                extensionProviders.Add(new ExtensionsFileProvider(loggerFactory, extension));
            }

            //extensionProviders.Reverse();

            this.Composite = new CompositeFileProvider(new List <IFileProvider>(extensionProviders)
            {
                provdier
            });
        }
Example #24
0
        private IFileProvider CreateHybridProvider()
        {
            IFileProvider fileProvider = new InternalVirtualFileProvider(_options);

            if (_options.FileSets.PhysicalPaths.Any())
            {
                var fileProviders = _options.FileSets.PhysicalPaths
                                    .Select(rootPath => new PhysicalFileProvider(rootPath))
                                    .Cast <IFileProvider>()
                                    .ToList();

                fileProviders.Add(fileProvider);

                fileProvider = new CompositeFileProvider(fileProviders);
            }

            return(fileProvider);
        }
        public static void AddFileStorage(this IServiceCollection services,
                                          IHostingEnvironment hostingEnvironment)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (hostingEnvironment == null)
            {
                throw new ArgumentNullException(nameof(hostingEnvironment));
            }

            var physicalProvider  = hostingEnvironment.ContentRootFileProvider;
            var wwwroot           = new PhysicalFileProvider(hostingEnvironment.WebRootPath);
            var embeddedProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(wwwroot, physicalProvider, embeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);
        }
Example #26
0
        public static void AddServices(this IServiceCollection services)
        {
            services.AddSingleton <IActionContextAccessor, ActionContextAccessor>();
            services.AddScoped <IUrlHelper>(factory =>
            {
                var actionContext = factory.GetService <IActionContextAccessor>()
                                    .ActionContext;
                return(new UrlHelper(actionContext));
            });

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

            services.AddSingleton <IFileProvider>(compositeProvider);

            services.AddScoped <IUnitOfWork, UnitOfWork>();
            services.AddScoped(typeof(ICoreService <>), typeof(CoreService <>));
        }
        public void ConfigureServices(IServiceCollection services)
        {
            //var cronJobs = new List<CronMethod>();
            //Configuration.GetSection("CronJob").Bind(cronJobs);
            //services.AddSingleton(cronJobs);

            services.Configure <List <CronMethod> >(Configuration.GetSection("CronJob"));

            services.AddTransient <IBackgroundRepository, BackgroundRepository>();

            services.UseQuartz(typeof(BackgroundJob));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

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

            services.AddSingleton <IFileProvider>(compositeProvider);
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <CoreContext>(options =>
                                                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddMvc(options =>
            {
                options.OutputFormatters.Remove(new XmlDataContractSerializerOutputFormatter());
            });

            // AutoMapper Auto Scan this Assembly for Configuration Files
            services.AddAutoMapper();

            services.AddScoped <IUnitOfWork, CoreContext>();
            services.AddScoped(typeof(ICoreService <>), typeof(CoreService <>));
            services.AddScoped <IUploadedFileRepository, UploadedFileRepository>();

            //FileProvider
            var physicalProvider  = new PhysicalFileProvider(Directory.GetCurrentDirectory());
            var embeddedProvider  = new EmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);

            // Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "My APIs", Version = "v1"
                });
            });
            //services.AddAuthentication(options =>
            //    {
            //        options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            //        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            //    })
            //    .AddJwtBearer(o =>
            //    {
            //        o.Audience = "api1";
            //        o.Authority = "http://localhost:5000";
            //        o.RequireHttpsMetadata = false;
            //    });
        }
Example #29
0
        public override void Run()
        {
            //物理文件
            string        root          = AppDomain.CurrentDomain.BaseDirectory;
            IFileProvider fileProvider1 = new PhysicalFileProvider(root);
            //嵌入文件
            IFileProvider fileProvider2 = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());

            //组合
            IFileProvider fileProvider = new CompositeFileProvider(fileProvider1, fileProvider2);

            IDirectoryContents contents = fileProvider.GetDirectoryContents("/");

            foreach (var item in contents)
            {
                Stream stream = item.CreateReadStream();
                Console.WriteLine(item.Name);
            }
        }
Example #30
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            IFileProvider assemblyFile = new ManifestEmbeddedFileProvider(Assembly.GetEntryAssembly());
            IFileProvider physicalFile = new PhysicalFileProvider(Directory.GetCurrentDirectory());

            IFileProvider combineProvider = new CompositeFileProvider(assemblyFile, physicalFile);

            services.AddSingleton <IFileProvider>(combineProvider);
            // var contents = fileProvider.GetDirectoryContents();

            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
Example #31
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            #region snippet1
            var physicalProvider         = _env.ContentRootFileProvider;
            var manifestEmbeddedProvider =
                new ManifestEmbeddedFileProvider(Assembly.GetEntryAssembly());
            var compositeProvider =
                new CompositeFileProvider(physicalProvider, manifestEmbeddedProvider);

            services.AddSingleton <IFileProvider>(compositeProvider);
            #endregion
        }
Example #32
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.AddDbContext <SklepKomputerowyContext>(options =>
                                                            options.UseSqlServer(Configuration.GetConnectionString("SklepKomputerowyContext")));
            services.Configure <RequestLocalizationOptions>(
                options =>
            {
                options.DefaultRequestCulture = new RequestCulture(culture: "pl-PL", uiCulture: "pl-PL");
            });
            services.AddDirectoryBrowser();
            IFileProvider physicalProvider  = new PhysicalFileProvider(@"D:/Users/Micha³ Jaœkiewicz/Desktop/Praktyki projekt/sklepKomputerowy");
            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>(compositeProvider);
            services.AddRazorPages();
            services.AddTransient <FilterZamowienieServices>();
        }
Example #33
0
        public static void UseFrontend(this IApplicationBuilder app)
        {
            var environment = app.ApplicationServices.GetRequiredService <IWebHostEnvironment>();

            var fileProvider = environment.WebRootFileProvider;

            if (environment.IsProduction())
            {
                fileProvider = new CompositeFileProvider(fileProvider,
                                                         new PhysicalFileProvider(Path.Combine(environment.WebRootPath, "build")));
            }

            app.UseMiddleware <NotifoMiddleware>();

            app.UseWhen(c => c.IsSpaFile(), builder =>
            {
                builder.UseMiddleware <SetupMiddleware>();
            });

            app.UseWhen(c => c.IsSpaFile() || c.IsHtmlPath(), builder =>
            {
                builder.UseHtmlTransform();
            });

            app.UseNotifoStaticFiles(fileProvider);

            if (environment.IsProduction())
            {
                // Try static files again tó serve index.html.
                app.UsePathOverride("/index.html");
                app.UseNotifoStaticFiles(fileProvider);
            }
            else
            {
                // Forward requests to SPA development server.
                app.UseSpa(builder =>
                {
                    builder.UseProxyToSpaDevelopmentServer("https://localhost:3002");
                });
            }
        }
Example #34
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <HexaDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient);

            //register AutoMapper
            services.RegisterMapper();

            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
            });

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

            services.AddSingleton <IFileProvider>(compositeProvider);

            // register dependancy injection
            services.RegisterServices();
        }
        public ModuleProjectRazorFileProvider(string rootPath)
        {
            if (_paths != null)
            {
                return;
            }

            lock (_synLock)
            {
                if (_paths == null)
                {
                    var path = Path.Combine(rootPath, MappingFileFolder, MappingFileName);

                    if (File.Exists(path))
                    {
                        var paths = File.ReadAllLines(path)
                                    .Select(x => x.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries))
                                    .Where(x => x.Length == 2).ToDictionary(x => x[1].Replace('\\', '/'), x => x[0].Replace('\\', '/'));

                        _paths = new Dictionary <string, string>(paths);
                    }
                    else
                    {
                        _paths = new Dictionary <string, string>();
                    }
                }

                var roots = new HashSet <string>();

                foreach (var path in _paths.Values.Where(p => p.Contains("/Pages/") && !p.StartsWith("/Pages/")))
                {
                    roots.Add(path.Substring(0, path.IndexOf("/Pages/")));
                }

                if (roots.Count > 0)
                {
                    _pagesFileProvider = new CompositeFileProvider(roots.Select(r => new PhysicalFileProvider(r)));
                }
            }
        }
        public void GetFileInfo_ReturnsTheFirstFoundFileInfo()
        {
            // Arrange
            var fileName = "File1";
            var expectedFileInfo = new MockFileInfo(fileName);
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new MockFileInfo("FileA"),
                    new MockFileInfo("FileB")),
                new MockFileProvider(
                    expectedFileInfo,
                    new MockFileInfo("File2")),
                new MockFileProvider(
                    new MockFileInfo(fileName),
                    new MockFileInfo("File3")));

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

            // Assert
            Assert.Same(expectedFileInfo, fileInfo);
        }
        public void GetDirectoryContents_ReturnsCombinaitionOFFiles_WhenSomeFileProviderRetunsNoContent()
        {
            // Arrange
            var folderAFile1 = new MockFileInfo("FolderA/File1");
            var folderAFile2 = new MockFileInfo("FolderA/File2");
            var folderAFile2Bis = new MockFileInfo("FolderA/File2");
            var folderBFile1 = new MockFileInfo("FolderB/File1");
            var folderBFile2 = new MockFileInfo("FolderB/File2");
            var folderCFile3 = new MockFileInfo("FolderC/File3");
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    folderAFile1,
                    folderAFile2,
                    folderBFile2),
                new MockFileProvider(
                    folderAFile2Bis,
                    folderBFile1,
                    folderCFile3));

            // Act
            var files = provider.GetDirectoryContents("FolderC/");

            // Assert
            Assert.NotNull(files);
            Assert.True(files.Exists);
            Assert.Collection(files.OrderBy(f => f.Name, StringComparer.Ordinal),
                file => Assert.Equal(folderCFile3, file));
        }
        public void Watch_ReturnsNoopChangeToken_IfNoFileProviderSpecified()
        {
            // Arrange
            var provider = new CompositeFileProvider();

            // Act
            var changeToken = provider.Watch("DoesNotExist*Pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.False(changeToken.ActiveChangeCallbacks);
        }
        public void Watch_ReturnsNoopChangeToken_IfNoWatcherReturnedByFileProviders()
        {
            // Arrange
            var provider = new CompositeFileProvider(
                new MockFileProvider());

            // Act
            var changeToken = provider.Watch("DoesntExist*Pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.False(changeToken.ActiveChangeCallbacks);
        }
        public void Watch_CompositeChangeToken_HasChangedIsCorrectlyComputed()
        {
            // Arrange
            var firstChangeToken = new MockChangeToken();
            var secondChangeToken = new MockChangeToken();
            var thirdChangeToken = new MockChangeToken();
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new KeyValuePair<string, IChangeToken>("pattern", firstChangeToken),
                    new KeyValuePair<string, IChangeToken>("2ndpattern", secondChangeToken)),
                new MockFileProvider(new KeyValuePair<string, IChangeToken>("pattern", thirdChangeToken)));

            // Act
            var changeToken = provider.Watch("pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.False(changeToken.ActiveChangeCallbacks);
            Assert.False(changeToken.HasChanged);

            // HasChanged update
            // first change token
            firstChangeToken.HasChanged = true;
            Assert.True(changeToken.HasChanged);
            firstChangeToken.HasChanged = false;
            // second change token
            secondChangeToken.HasChanged = true;
            Assert.False(changeToken.HasChanged);
            secondChangeToken.HasChanged = false;
            // third change token
            thirdChangeToken.HasChanged = true;
            Assert.True(changeToken.HasChanged);
        }
        public void Watch_CompositeChangeToken_RegisterChangeCallbackCorrectlyTransmitsAllParameters()
        {
            // Arrange
            var firstChangeToken = new MockChangeToken { ActiveChangeCallbacks = true };
            var secondChangeToken = new MockChangeToken();
            var thirdChangeToken = new MockChangeToken { ActiveChangeCallbacks = true };
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new KeyValuePair<string, IChangeToken>("pattern", firstChangeToken),
                    new KeyValuePair<string, IChangeToken>("2ndpattern", secondChangeToken)),
                new MockFileProvider(new KeyValuePair<string, IChangeToken>("pattern", thirdChangeToken)));

            // Act
            var changeToken = provider.Watch("pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.True(changeToken.ActiveChangeCallbacks);
            Assert.False(changeToken.HasChanged);

            // Register callback
            Assert.Equal(0, firstChangeToken.Callbacks.Count);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(0, thirdChangeToken.Callbacks.Count);
            var hasBeenCalled = false;
            object result = null;
            object state = new object();
            changeToken.RegisterChangeCallback(item =>
            {
                hasBeenCalled = true;
                result = item;
            }, state);
            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.Same(state, firstChangeToken.Callbacks[0].Item2);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.Same(state, thirdChangeToken.Callbacks[0].Item2);
            var expectedResult = new object();
            firstChangeToken.RaiseCallback(expectedResult);
            Assert.True(hasBeenCalled);
            Assert.Equal(expectedResult, result);
        }
        public void GetDirectoryContents_ReturnsCombinaisionOFFiles()
        {
            // Arrange
            var file1 = new MockFileInfo("File1");
            var file2 = new MockFileInfo("File2");
            var file2Bis = new MockFileInfo("File2");
            var file3 = new MockFileInfo("File3");
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    file1,
                    file2),
                new MockFileProvider(
                    file2Bis,
                    file3));

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

            // Assert
            Assert.NotNull(files);
            Assert.True(files.Exists);
            Assert.Collection(files.OrderBy(f => f.Name, StringComparer.Ordinal),
                file => Assert.Same(file1, file),
                file => Assert.Same(file2, file),
                file => Assert.Same(file3, file));
        }
        public void Watch_CompositeChangeToken_RegisterChangeCallbackReturnsACompositeDisposable()
        {
            // Arrange
            var firstChangeToken = new MockChangeToken { ActiveChangeCallbacks = true };
            var secondChangeToken = new MockChangeToken();
            var thirdChangeToken = new MockChangeToken { ActiveChangeCallbacks = false };
            var provider = new CompositeFileProvider(
                new MockFileProvider(
                    new KeyValuePair<string, IChangeToken>("pattern", firstChangeToken),
                    new KeyValuePair<string, IChangeToken>("2ndpattern", secondChangeToken)),
                new MockFileProvider(new KeyValuePair<string, IChangeToken>("pattern", thirdChangeToken)));

            // Act
            var changeToken = provider.Watch("pattern");

            // Assert
            Assert.NotNull(changeToken);
            Assert.True(changeToken.ActiveChangeCallbacks);
            Assert.False(changeToken.HasChanged);

            // Register callback
            Assert.Equal(0, firstChangeToken.Callbacks.Count);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(0, thirdChangeToken.Callbacks.Count);
            object result = null;
            object state = new object();
            var disposable = changeToken.RegisterChangeCallback(item =>
            {
                result = item;
            }, state);
            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.False(firstChangeToken.Callbacks[0].Item3.Disposed);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.False(thirdChangeToken.Callbacks[0].Item3.Disposed);
            disposable.Dispose();
            Assert.Equal(1, firstChangeToken.Callbacks.Count);
            Assert.True(firstChangeToken.Callbacks[0].Item3.Disposed);
            Assert.Equal(0, secondChangeToken.Callbacks.Count);
            Assert.Equal(1, thirdChangeToken.Callbacks.Count);
            Assert.True(thirdChangeToken.Callbacks[0].Item3.Disposed);
        }