private void Insert(string folderWithSongs, IStride stride, StringBuilder sb)
{
var allFiles = AllFiles(folderWithSongs);
int inserted = 0;
var stopWatch = new Stopwatch();
stopWatch.Start();
Parallel.ForEach(
allFiles,
file =>
{
OnTestRunnerEvent(
OngoingActionEvent,
new TestRunnerOngoingEventArgs
{
Message = string.Format(
"Inserting tracks {0} out of {1}. Track {2}",
Interlocked.Increment(ref inserted),
allFiles.Count,
System.IO.Path.GetFileNameWithoutExtension(file))
});
var track = InsertTrack(file);
var hashes = fcb.BuildFingerprintCommand()
.From(file)
.WithFingerprintConfig(config => { config.Stride = stride; })
.UsingServices(audioService)
.Hash()
.Result;
modelService.InsertHashDataForTrack(hashes, track);
});
stopWatch.Stop();
sb.AppendLine(string.Format("{0},{1}", inserted, stopWatch.ElapsedMilliseconds / 1000));
}