Example #1
0
        // 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;
 }