示例#1
0
 public static FileServicesOptions AddPhysicalFilePath(this FileServicesOptions app, System.Func <System.IServiceProvider, string> func)
 {
     return(app.AddFileStore(sp =>
     {
         return new FileStorage.Standard.FileSystemStore(func(sp));
     }));
 }
示例#2
0
 public static FileServicesOptions AddFileProviderReadOnly(this FileServicesOptions app, Microsoft.Extensions.FileProviders.IFileProvider fileProvider)
 {
     return(AddFileProviderReadOnly(app, sp =>
     {
         return fileProvider;
     }));
 }
示例#3
0
 public static FileServicesOptions AddPermissionHandle(this FileServicesOptions app, Func <FileStorage.IFileStoreEntry, Task <FileStorage.Permission> > func)
 {
     return(AddPermissionHandle(app, (sp, fs) =>
     {
         return func(fs);
     }));
 }
示例#4
0
 public static FileServicesOptions AddFileStore(this FileServicesOptions app, FileStorage.IFileStore fileStore)
 {
     return(AddFileStore(app, sp =>
     {
         return fileStore;
     }));
 }
示例#5
0
 public static FileServicesOptions AddPhysicalFilePath(this FileServicesOptions app, string path)
 {
     return(AddPhysicalFilePath(app, sp =>
     {
         return path;
     }));
 }
示例#6
0
 public static FileServicesOptions AddFileProviderPhysicalPathReadOnly(this FileServicesOptions app, string path)
 {
     return(AddFileProviderPhysicalPathReadOnly(app, sp =>
     {
         return path;
     }));
 }
示例#7
0
 public static FileServicesOptions AddRootPhysicalFilePath(this FileServicesOptions app, Microsoft.AspNetCore.Http.PathString path)
 {
     return(AddPhysicalFilePath(app, sp =>
     {
         var env = sp.GetService <Microsoft.AspNetCore.Hosting.IHostingEnvironment>();
         return env.ContentRootPath + path;
     }));
 }
示例#8
0
 public static FileServicesOptions AddContentRootFileProviderReadOnly(this FileServicesOptions app)
 {
     return(AddFileProviderReadOnly(app, sp =>
     {
         var env = sp.GetService <Microsoft.AspNetCore.Hosting.IHostingEnvironment>();
         return env.ContentRootFileProvider;
     }));
 }
示例#9
0
 public static FileServicesOptions AddFileProviderPhysicalPathReadOnly(this FileServicesOptions app, System.Func <System.IServiceProvider, string> func)
 {
     return(AddFileProviderReadOnly(app, sp =>
     {
         var env = sp.GetService <Microsoft.AspNetCore.Hosting.IHostingEnvironment>();
         var fileProvider = new Microsoft.Extensions.FileProviders.PhysicalFileProvider(func(sp));
         return fileProvider;
     }));
 }
示例#10
0
        public static FileServicesOptions AddFileProviderReadOnly(this FileServicesOptions app, System.Func <System.IServiceProvider, Microsoft.Extensions.FileProviders.IFileProvider> func)
        {
            app.AddFileStore((sp) =>
            {
                return(new FileStorage.Standard.FileProviderStore(func(sp)));
            });

            return(app);
        }
示例#11
0
        public static FileServicesOptions AddPermissionHandle(this FileServicesOptions app, Func <System.IServiceProvider, FileStorage.IFileStoreEntry, Task <FileStorage.Permission> > func)
        {
            app.Services.AddSingleton <FileStorage.IPermissions>((sp) =>
            {
                return(new FileStorage.DefaultPermissions(f => func(sp, f)));
            });

            return(app);
        }
        public static FileServicesOptions AddFtpStore(this FileServicesOptions app, System.Func <System.IServiceProvider, FileStorage.Ftp.FtpStore> func)
        {
            app.Services.AddSingleton <FileStorage.IFileStore>((sp) =>
            {
                return(func(sp));
            });

            return(app);
        }
        public static IServiceCollection AddFileManager(this IServiceCollection services, System.Action <FileServicesOptions> action = null)
        {
            services.AddSingleton <FileStorage.DefaultPermissionHandle>();

            var r = new FileServicesOptions()
            {
                Services = services
            };

            if (action == null)
            {
                r.AddWebRootFileProviderReadOnly();
            }
            else
            {
                action?.Invoke(r);
            }

            return(services);
        }
示例#14
0
 public static FileServicesOptions AddMongoDBStore(this FileServicesOptions app, MongoUrl url)
 {
     return(AddMongoDBStore(app, sp => new MongoDBStore(url)));
 }
 public static FileServicesOptions AddFtpStore(this FileServicesOptions app, string host, int port, string user, string pass)
 {
     return(AddFtpStore(app, sp => new FileStorage.Ftp.FtpStore(host, port, user, pass)));
 }
 public static FileServicesOptions AddWebDavStore(this FileServicesOptions app, Uri url, string user, string pass)
 {
     return(AddWebDavStore(app, sp => new FileStorage.WebDav.WebDavStore(url, user, pass)));
 }
 public static FileServicesOptions AddCompressStore(this FileServicesOptions app, System.IO.Stream zipFileStream, string password = null)
 {
     return(AddCompressStore(app, sp => new Storage.Compress.CompressStore(zipFileStream, password)));
 }
示例#18
0
 public static FileServicesOptions AddMongoDBStore(this FileServicesOptions app, MongoClient client)
 {
     return(AddMongoDBStore(app, sp => new MongoDBStore(client)));
 }