public static JobFileContentExt ConvertJobFileContentToExt(JobFileContent content) { JobFileContentExt convert = new JobFileContentExt() { Content = content.Content, RelativePath = content.RelativePath, Offset = content.Offset, FileType = ConvertSynchronizableFilesToExt(content.FileType), SubmittedTaskInfoId = content.SubmittedTaskInfoId }; return(convert); }
public ICollection <JobFileContent> SynchronizeFiles() { ConnectionInfo connection = ConnectionPool.GetConnectionForUser(_credentials); try { var client = new SftpClientAdapter((ExtendedSftpClient)connection.Connection); string sourcePath = FileSystemUtils.ConcatenatePaths(SyncFileInfo.SourceDirectory, SyncFileInfo.RelativePath); if (client.Exists(sourcePath)) { using Stream sourceStream = client.OpenRead(sourcePath); string synchronizedContent = FileSystemUtils.ReadStreamContentFromSpecifiedOffset(sourceStream, Offset); if (!string.IsNullOrEmpty(SyncFileInfo.DestinationDirectory)) { string destinationPath = Path.Combine(SyncFileInfo.DestinationDirectory, SyncFileInfo.RelativePath); if (Offset == 0) { File.Delete(destinationPath); } FileSystemUtils.WriteStringToLocalFile(synchronizedContent, destinationPath); } JobFileContent[] result = new JobFileContent[1] { new JobFileContent { RelativePath = SyncFileInfo.RelativePath, Content = synchronizedContent, Offset = Offset } }; if (SyncFileInfo.SynchronizationType == FileSynchronizationType.IncrementalAppend) { Offset = sourceStream.Position; } return(result); } } finally { ConnectionPool.ReturnConnection(connection); } return(default);