コード例 #1
0
ファイル: Program.cs プロジェクト: mcgml/NGSTransfer
        private static void timer_Tick()
        {
            bool foundCompletedRun = false;

            //check if runs are complete but not already uploaded
            foreach (string folder in Directory.GetDirectories(config.getAnalysisFolderPath))
            {
                if (File.Exists(Path.Combine(folder, @"RTAComplete.txt")) && !File.Exists(Path.Combine(folder, @"TransferComplete.txt")))
                {
                    Framework.WriteLog(@"Found job: " + Path.Combine(config.getAnalysisFolderPath, folder), 0);
                    foundCompletedRun = true;

                    //transfer data to cluster
                    try
                    {
                        TransferJob job = new TransferJob(folder, config);
                        job.TransferData();

                    } catch (Exception e) {
                        Framework.WriteLog(e.Message, -1);
                        foundCompletedRun = false;
                    }

                }

            }

            //delete old runs
            if (foundCompletedRun && config.getDeleteOldestLocalRun)
            {
                //get dir list and sort by date creation
                var di = new DirectoryInfo(config.getAnalysisFolderPath);
                var directories = di.EnumerateDirectories()
                                    .OrderBy(d => d.CreationTime)
                                    .Select(d => d.Name)
                                    .ToList();

                //delete subfolders; protect the last maxSubDirsToKeep (newest) runs
                for (int n = 0; n < directories.Count - 5; ++n)
                {
                    if (File.Exists(Path.Combine(directories[n], @"TransferComplete.txt")))
                    {
                        try
                        {
                            Framework.WriteLog(@"Deleting folder: " + Path.Combine(config.getAnalysisFolderPath, directories[n]), 0);
                            //Directory.Delete(localRunDir + directories[n], true);
                        }
                        catch (Exception e)
                        {
                            Framework.WriteLog(@"Could not delete folder: " + e.ToString(), -1);
                        }
                    }
                }

                if (config.getIsMiSeqHost)
                {
                    try
                    {
                        Framework.WriteLog(@"Deleting and making folder: " + config.getOutputFolderPath, 0);
                        //Directory.Delete(config.getOutputFolderPath, true);
                        //Directory.CreateDirectory(config.getOutputFolderPath);
                    }
                    catch (Exception e)
                    {
                        Framework.WriteLog(@"Could not delete folder: " + e.ToString(), -1);
                    }

                }

            }
        }
コード例 #2
0
        private static void timer_Tick()
        {
            bool foundCompletedRun = false;

            //check if runs are complete but not already uploaded
            foreach (string folder in Directory.GetDirectories(config.getAnalysisFolderPath))
            {
                if (File.Exists(Path.Combine(folder, @"RTAComplete.txt")) && !File.Exists(Path.Combine(folder, @"TransferComplete.txt")))
                {
                    Framework.WriteLog(@"Found job: " + Path.Combine(config.getAnalysisFolderPath, folder), 0);
                    foundCompletedRun = true;

                    //transfer data to cluster
                    try
                    {
                        TransferJob job = new TransferJob(folder, config);
                        job.TransferData();
                    } catch (Exception e) {
                        Framework.WriteLog(e.Message, -1);
                        foundCompletedRun = false;
                    }
                }
            }

            //delete old runs
            if (foundCompletedRun && config.getDeleteOldestLocalRun)
            {
                //get dir list and sort by date creation
                var di          = new DirectoryInfo(config.getAnalysisFolderPath);
                var directories = di.EnumerateDirectories()
                                  .OrderBy(d => d.CreationTime)
                                  .Select(d => d.Name)
                                  .ToList();

                //delete subfolders; protect the last maxSubDirsToKeep (newest) runs
                for (int n = 0; n < directories.Count - 5; ++n)
                {
                    if (File.Exists(Path.Combine(directories[n], @"TransferComplete.txt")))
                    {
                        try
                        {
                            Framework.WriteLog(@"Deleting folder: " + Path.Combine(config.getAnalysisFolderPath, directories[n]), 0);
                            //Directory.Delete(localRunDir + directories[n], true);
                        }
                        catch (Exception e)
                        {
                            Framework.WriteLog(@"Could not delete folder: " + e.ToString(), -1);
                        }
                    }
                }

                if (config.getIsMiSeqHost)
                {
                    try
                    {
                        Framework.WriteLog(@"Deleting and making folder: " + config.getOutputFolderPath, 0);
                        //Directory.Delete(config.getOutputFolderPath, true);
                        //Directory.CreateDirectory(config.getOutputFolderPath);
                    }
                    catch (Exception e)
                    {
                        Framework.WriteLog(@"Could not delete folder: " + e.ToString(), -1);
                    }
                }
            }
        }