Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        private void OnFilmUploadFailure(object sender, EventArgs ea)
        {
            TransferPacket transferPacket = sender as TransferPacket;

            transferPacket.SuccessEvent -= OnFilmUploadSuccess;
            transferPacket.FailureEvent -= OnFilmUploadFailure;

            FireFailureEvent(ProductionErrorStatus.PES_UPLOAD);
        }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 8
0
        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);
                }
            }
        }
Ejemplo n.º 9
0
        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();
            }
        }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
        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;
 }