/// <summary> /// Send a file to a Ftps address /// </summary> /// <param name="fileHash"></param> /// <param name="url"></param> /// <param name="username"></param> /// <param name="password"></param> public void PutFromTemporaryFile(string fileHash, string uri, string username, string password) { ConnectAndRun(uri, username, password, // setup request => { request.Method = WebRequestMethods.Ftp.UploadFile; using (var fileStream = FileRepositoryHelper.GetTemporaryFileDataStream(fileHash)) { using (var requestStream = request.GetRequestStream()) { fileStream.CopyTo(requestStream); } } }, // handle response responseStream => { // do nothing } ); }
/// <summary> /// Get sheet info from the imported spreadsheet. /// </summary> /// <param name="fileUploadId">File upload Id.</param> /// <param name="sheetId">Selected sheet info.</param> /// <param name="headerRowNo">Header row no.</param> /// <param name="dataRowNo">Data row number to start reading data.</param> /// <param name="lastRowNo">Optional last row number to read.</param> /// <param name="fileFormat">Imported file fileFormat ( Excel or CSV)</param> /// <returns> /// Sheet Info. /// </returns> public SampleTable GetSampleTable(string fileUploadId, ImportFormat fileFormat, string sheetId, int headerRowNo, int dataRowNo, int?lastRowNo) { // Get service IDataFileReaderService service = _readerActivator(fileFormat); // Settings DataFileReaderSettings settings = new DataFileReaderSettings { ImportFormat = fileFormat, HeadingRowNumber = headerRowNo, FirstDataRowNumber = dataRowNo, LastDataRowNumber = lastRowNo, SheetId = sheetId }; // Open stream using (Stream stream = FileRepositoryHelper.GetTemporaryFileDataStream(fileUploadId)) { // Build sample SampleDataCreator creator = new SampleDataCreator( ); SampleTable sampleTable = creator.CreateSample(stream, settings, service); // Trim titles foreach (var col in sampleTable.Columns) { col.Name = col.Name?.Trim( ) ?? ""; } return(sampleTable); } }
/// <summary> /// Get spreadsheet Information from the imported file. /// </summary> /// <param name="fileUploadId"> /// File upload Id. /// </param> /// <param name="fileFormat"> /// Imported file fileFormat ( Excel or CSV) /// </param> /// <returns>Spreadsheet info /// </returns> public SpreadsheetInfo GetSpreadsheetInfo(string fileUploadId, ImportFormat fileFormat) { // Get service IDataFileReaderService service = _readerActivator(fileFormat); // Load info about sheets IReadOnlyList <SheetInfo> sheets; using (Stream stream = FileRepositoryHelper.GetTemporaryFileDataStream(fileUploadId)) { // Settings DataFileReaderSettings settings = new DataFileReaderSettings { ImportFormat = fileFormat }; IDataFile dataFile = service.OpenDataFile(stream, settings); sheets = dataFile.GetSheets( ); } var spreadsheetInfo = new SpreadsheetInfo { ImportFileFormat = fileFormat, SheetCollection = sheets }; return(spreadsheetInfo); }
public HttpResponseMessage GetFileByToken(string token) { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(FileRepositoryHelper.GetTemporaryFileDataStream(token)) }; return(response); }
public void PutFromTemporaryFile(string fileHash, string url, string username, string password) { var uri = new Uri(url); ConnectAndRun(uri.Host, username, password, (sftp) => { var filePath = uri.AbsolutePath; using (var ms = FileRepositoryHelper.GetTemporaryFileDataStream(fileHash)) { sftp.UploadFile(ms, filePath); } }); }
public HttpResponseMessage <ImportResult> ImportXmlGetData([FromUri] string fileId, [FromUri] string fileName = null, [FromUri] bool ignoreDeps = false) { IEntityXmlImporter importer = Factory.EntityXmlImporter; EntityXmlImportResult serviceResult; // Decode settings var settings = new EntityXmlImportSettings { IgnoreMissingDependencies = ignoreDeps }; // Import using (Stream stream = FileRepositoryHelper.GetTemporaryFileDataStream(fileId)) using (var xmlReader = XmlReader.Create(stream)) { serviceResult = importer.ImportXml(xmlReader, settings); } // Format result ImportResult webResult; if (serviceResult.ErrorMessage != null) { webResult = new ImportResult { Success = false, Message = serviceResult.ErrorMessage }; } else { IEntityRepository entityRepository = Factory.EntityRepository; var entities = entityRepository.Get <Resource>(serviceResult.RootEntities); webResult = new ImportResult { Success = true, Entities = entities.Select(FormatEntity).ToList( ) }; } return(new HttpResponseMessage <ImportResult>(webResult)); }
public HttpResponseMessage ExportApplication(string token, string name) { Stream stream = FileRepositoryHelper.GetTemporaryFileDataStream(token); var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(stream) }; // Note: We are not setting the content length or the mime type // because the CompressionHandler will compress the stream. // Specifying a mimetype specified here will cause the browser (Chrome at least) to log a // message. // Specifying the length here will cause the browser to hang as the actual data it // receives (as it is compressed) will be less than the specified content length. response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = name }; return(response); }
public static void TestPutGet(IRemoteFileFetcher fetcher, string url, string username, string password) { byte[] buffer; string fileHash; CreateTempFile(out buffer, out fileHash); // Put fetcher.PutFromTemporaryFile(fileHash, url, username, password); // Get var fetchedHash = fetcher.GetToTemporaryFile(url, username, password); using (var fetchedMs = FileRepositoryHelper.GetTemporaryFileDataStream(fetchedHash)) { var b = fetchedMs.ReadByte(); buffer[0].ShouldBeEquivalentTo(b); } //TODO: Delete the file }
/// <summary> /// Gets the file from the database. /// </summary> /// <param name="fileUploadId">The file upload identifier that was created by the file manager service.</param> /// <returns>An open file stream that represents the file extracted from the database</returns> /// <remarks></remarks> public Stream GetFileFromRepository(string fileUploadId) { return(FileRepositoryHelper.GetTemporaryFileDataStream(fileUploadId)); }