private void Queue_ItemProcessed(object sender, TransferQueueItemProcessedEventArgs e) { TransferPacket currentPacket; if (transferPacketList.Any(item => item.FileItem == e.Item)) { currentPacket = transferPacketList.First(item => item.FileItem == e.Item); if (e.Item.Error == null) { if (currentPacket.Type == TransferType.UploadSubPacket) { TransferPacket parentPacket = currentPacket.Parent as TransferPacket; parentPacket.RemainingSubPackets -= 1; if (parentPacket.RemainingSubPackets == 0) { parentPacket.FireSuccessEvent(); } } else { currentPacket.FireSuccessEvent(); } } else { currentPacket.FireFailureEvent(e.Item.Error); } transferPacketList.Remove(currentPacket); } else { } }
public void Transfer(TransferPacket packet) { connectErrorCount = 0; sleepTimerMultiplier = 0; this.Packet = packet; client.ConnectAsync(Settings.MasterLogin.Url, 22); }
public void AddTransferPacket(TransferPacket Packet) { Log("Adding file transfer: " + Packet.SourcePath + " -> " + Packet.TargetPath); if (client.IsConnected == false) { int connectCounter = 0; bool success = Reconnect(); while (success == false && connectCounter < Settings.MaxTransferErrorCount) { Log("Connection to " + loginData.Url + " not possible at this moment. Waiting for " + Settings.MinutesToSleepBeforeRetry + " minutes to try again..."); connectCounter += 1; Thread.Sleep(Convert.ToInt32(Math.Ceiling(1000 * 60 * Settings.MinutesToSleepBeforeRetry))); success = Reconnect(); } if (success == false) { if (Packet.Parent is Production) { (Packet.Parent as Production).ErrorStatus = ProductionErrorStatus.PES_UPLOAD; } else if (Packet.Parent is Motif) { if ((Packet.Parent as Motif).Job != null) { (Packet.Parent as Motif).Job.ErrorStatus = JobErrorStatus.JES_DOWNLOAD_MOTIFS; } } return; } } switch (Packet.Type) { case TransferType.DownloadAnimatedMotif: case TransferType.DownloadAudio: case TransferType.DownloadMotif: AddDownloadSingle(Packet); break; case TransferType.UploadFilmDirectory: case TransferType.UploadFilmPreviewDirectory: case TransferType.UploadProductDirectory: case TransferType.UploadProductPreviewDirectory: AddUploadDirectory(Packet); break; case TransferType.UploadMotifPreview: AddUploadSingle(Packet); break; } if (queue.State != TransferQueueState.Processing) { queue.Start(); } }
private void OnFilmUploadFailure(object sender, EventArgs ea) { TransferPacket transferPacket = sender as TransferPacket; transferPacket.SuccessEvent -= OnFilmUploadSuccess; transferPacket.FailureEvent -= OnFilmUploadFailure; FireFailureEvent(ProductionErrorStatus.PES_UPLOAD); }
private void UploadPreviewDirectoryStandard() { TransferPacket transferPacket = new TransferPacket(production, TransferType.UploadFilmPreviewDirectory); transferPacket.SuccessEvent += OnFilmUploadSuccess; transferPacket.FailureEvent += OnFilmUploadFailure; transferManager = new TransferManager(); transferManager.Transfer(transferPacket); }
//creates a copy from given transferpacket with that packet as parent public TransferPacket(TransferPacket parentPacket, string sourcePath, string targetPath) { ItemID = "packet_" + parentPacket.ItemID + "_" + parentPacket.RemainingSubPackets; parentPacket.RemainingSubPackets += 1; Parent = parentPacket; SourcePath = sourcePath; TargetPath = targetPath; Type = TransferType.UploadSubPacket; LoginData = parentPacket.LoginData; }
//creates a copy from given transferpacket with that packet as parent public TransferPacket(TransferPacket parentPacket, string filename) { ItemID = "packet_" + parentPacket.ItemID + "_" + parentPacket.RemainingSubPackets; parentPacket.RemainingSubPackets += 1; Parent = parentPacket; SourcePath = Path.Combine(parentPacket.sourcePath, Path.GetFileName(filename)); string targeDirectory = parentPacket.sourcePath.Split(new char[] { Path.DirectorySeparatorChar }).Last(); TargetPath = parentPacket.TargetPath + "/" + targeDirectory + "/" + Path.GetFileName(filename); Type = TransferType.UploadSubPacket; LoginData = parentPacket.LoginData; }
private void AddUploadDirectory(TransferPacket packet) { FileInfoBase sourceFileInfo = DiskFileSystem.Default.CreateFileInfo(packet.SourcePath); if (sourceFileInfo.IsDirectory) { string[] filenames = System.IO.Directory.GetFiles(packet.SourcePath); foreach (string filename in filenames) { TransferPacket newPacket = new TransferPacket(packet, filename); AddUploadSingle(newPacket); } } }
private void OnFilmUploadSuccess(object sender, EventArgs ea) { TransferPacket transferPacket = sender as TransferPacket; transferPacket.SuccessEvent -= OnFilmUploadSuccess; transferPacket.FailureEvent -= OnFilmUploadFailure; if (transferPacket.Type == TransferType.UploadFilmPreviewDirectory) { UploadHashDirectory(); } else { FireSuccessEvent(); } }
private void UploadPreviewDirectoryProduct() { TransferPacket transferPacket = new TransferPacket(production, TransferType.UploadProductPreviewDirectory); transferPacket.SuccessEvent += OnFilmUploadSuccess; transferPacket.FailureEvent += OnFilmUploadFailure; transferManager = new TransferManager(); transferManager.Transfer(transferPacket); if (production.IsPreview) { string sourcePath = ProductionPathHelper.GetLocalProductPreviewProductionDirectory(production); string destinationPath = ProductionPathHelper.GetProductDirectory(production.JobList[0].ProductID); foreach (string newPath in Directory.GetFiles(sourcePath)) { File.Copy(newPath, newPath.Replace(sourcePath, destinationPath), true); } } }
private void AddUploadSingle(TransferPacket packet) { FileInfoBase sourceFileInfo = DiskFileSystem.Default.CreateFileInfo(packet.SourcePath); FileInfoBase targetFileInfo; try { targetFileInfo = client.CreateFileInfo(packet.TargetPath); } catch (Exception ex) { packet.FireFailureEvent(ex.Message); return; } ProgressFileItem pfi = queue.Add(sourceFileInfo, targetFileInfo, false, FileExistsAction.Overwrite, 1); packet.FileItem = pfi; transferPacketList.Add(packet); }
public _TransferManager(TransferPacket packet) { this.Packet = packet; }