using System;
using System.Linq;
using JD.Core;
using TeaBox.Macros;
namespace JDSongConverter.Tasks
{
///
/// Makes a copy of moves, recordings, and snippings datas
///
public class CopyMovesTask : CopyDirectorySetTask
{
public override TaskResult Process(IExecutionContext executionContext)
{
foreach (PlatformId platform in Enum.GetValues(typeof(PlatformId)).Cast().Where(x => x != PlatformId.UNDEFINED))
{
//We copy classifiers
var classifierInputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveClassifierDir, Context.Song, platform);
var classifierOutputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveClassifierDir, Context.OutputMap.Folder, Context.Song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine, platform);
if (System.IO.Directory.Exists(classifierInputPath))
{
if (!System.IO.Directory.Exists(classifierOutputPath))
{
System.IO.Directory.CreateDirectory(classifierOutputPath);
}
var task = new CopyDirectoryTask();
task.Init(classifierInputPath, classifierOutputPath);
Tasks.Add(task);
}
}
//We copy recordings
var recordingInputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveRecordingDir, Context.Song);
var recordginOutputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveRecordingDir, Context.OutputMap.Folder, Context.Song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
if (System.IO.Directory.Exists(recordingInputPath))
{
if (!System.IO.Directory.Exists(recordginOutputPath))
{
System.IO.Directory.CreateDirectory(recordginOutputPath);
}
var task = new CopyDirectoryTask();
task.Init(recordingInputPath, recordginOutputPath);
Tasks.Add(task);
}
//We copy snipping
var snippingInputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveSnippingDir, Context.Song);
var snippingOutputPath = AppDefinitions.Default.AbsoluteMapPath(MapPathType.MoveSnippingDir, Context.OutputMap.Folder, Context.Song.Name, JDSongVersion.JD2015, JDFolderLayout.Engine);
if (System.IO.Directory.Exists(snippingInputPath))
{
if (!System.IO.Directory.Exists(snippingOutputPath))
{
System.IO.Directory.CreateDirectory(snippingOutputPath);
}
var snipping = System.IO.Directory.EnumerateFiles(snippingInputPath, "*.csv").ToList();
foreach (var csv in snipping)
{
var outputCsv = csv.Replace(snippingInputPath, snippingOutputPath);
new CopyFileTask(csv, outputCsv).Process(executionContext);
}
}
return base.Process(executionContext);
}
public override string Name
{
get { return "Copy of moves"; }
set {}
}
public override string ProgressText
{
get { return "Copying moves"; }
}
}
}