public async Task <IActionResult> GetResultFile([FromHeader, Required] Guid fileToken) { var query2 = new GetFilePathByTokenQuery(fileToken); string pathToFile = await _mediator.Send(query2); if (String.IsNullOrEmpty(pathToFile)) { return(NotFound()); } var query = new GetFileQuery(); var filePath = await _mediator.Send(query); var memory = new MemoryStream(); string pathToResult = filePath; using (var stream = new FileStream(pathToResult, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; string mimeType = "application/octet-stream"; return(File(memory, mimeType, Path.GetFileName(pathToResult))); }
public async Task <IActionResult> GetFile(int fileId, CancellationToken token = default(CancellationToken)) { var query = new GetFileQuery(fileId, 200, 200); var file = await _queryProcessor.ExecuteAsync(query, token); if (file == null) { return(new NotFoundResult()); } return(new FileContentResult(file.Contents, new MediaTypeHeaderValue(file.MimeType))); }
public Result <Business.FileInfo> GetFileInfo(GetFileQuery query) { var dirpath = Path.Combine(settings.FileStorageRootPath, query.Username); var filepath = Path.Combine(dirpath, query.DataFileId.ToString()); var extension = query.FileType == FileType.Input ? ".csv" : ".h5"; var result = Result.SuccessIf( Directory.Exists(dirpath) && File.Exists(filepath), "Invalid file path") .Map(() => new Business.FileInfo() { Filename = query.DataFileId.ToString() + "_" + query.Username + extension, Filepath = filepath }); return(result); }
public HttpResponseMessage Get([FromUri] string path) { try { GetFileQuery query = new GetFileQuery() { MandatorUIDs = RequestMandatorUIDs, FileSystemDirectoryPath = ConfigurationManager.AppSettings["FileSystemDirectory"], Path = path }; GetFileQueryHandler handler = new GetFileQueryHandler(query, UnityContainer); var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = handler.Handle(); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = Path.GetFileName(query.Path) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); return(response); } catch (UnauthorizedAccessException e) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, e)); } catch (DataException e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } catch (FileNotFoundException e) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, e)); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e)); } }
public GetFileQueryHandler(GetFileQuery query, IUnityContainer unityContainer) : base(unityContainer) { _query = query; }