public async Task <HttpResponseMessage> Post(string output = "json") { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } Directory.CreateDirectory("Uploads"); var provider = new MultipartFormDataStreamProvider("Uploads"); try { await Request.Content.ReadAsMultipartAsync(provider); var config = ConsoleAnalyserConfig.FromFile("config.json"); var analyser = new Analyser(config); foreach (var file in provider.FileData) { analyser.AddFile(file.LocalFileName); } var results = analyser.Analyse(); foreach (var file in provider.FileData) { var search = System.IO.Path.GetFileName(file.LocalFileName); foreach (var analysedResult in results) { if (analysedResult.Source.Name.Contains(search)) { analysedResult.Source.Name = file.Headers.ContentDisposition.FileName; } } try { System.IO.File.Delete(file.LocalFileName); } catch { } } if (output != "html") { return(Request.CreateResponse(HttpStatusCode.OK, results)); } var reporter = new HtmlReporter(results); var html = reporter.Generate(); return(Request.CreateResponse(HttpStatusCode.OK, html)); } catch (System.Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } }