Example #1
0
        /// <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
            }
                          );
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
        }
Example #4
0
        public HttpResponseMessage GetFileByToken(string token)
        {
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(FileRepositoryHelper.GetTemporaryFileDataStream(token))
            };

            return(response);
        }
Example #5
0
        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);
        }
Example #8
0
        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));
 }