// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, IJsonConvertor jsonConvertor, IFileDecorator fileDecorator) { app.UseStatusCodePages() .UseStaticFiles(); app.Map("/upload", builder => { builder.Run(async context => { var result = new StandardResult(); if (context.Request?.Form?.Files == null || context.Request.Form.Files.Count <= 0) { result.StatusCode = StatusCode.RequestInvalid; result.Message = "请上传文件!"; } else { List <FileDecorator> fileDecorators = new List <FileDecorator>(); foreach (var fileContext in context.Request.Form.Files.Select(f => new FileContext(f.FileName, f.OpenReadStream(), context))) { await fileDecorator.Decorate(fileContext); } result.Body = fileDecorators; } await context.Response.WriteAsync(jsonConvertor.Serialize(result)); }); }); }
public void TestGivenStringWhenCheckIfValidFileNameThenCorrectResultReturned( string fileName, bool expectedResult) { ICsharpExtrasApi api = new CsharpExtrasApi(); IFileDecorator fileDecorator = api.NewFileDecorator(); fileDecorator.FileNameChecker = new MockWindowsSpecificFileNameChecker(); Assert.AreEqual(expectedResult, fileDecorator.IsValidFileName(fileName), "Expected the file name check to match expected result"); }
public FileManager(IFileDecorator fileDecorator) { this.fileDecorator = fileDecorator; }