private void ChangeTags()
{
var fileName = Path.GetFileNameWithoutExtension(File.FullName);
if (!_maskParser.ValidateFileName(fileName))
{
throw new InvalidDataException("Mask doesn't match the file name.");
}
var tagPatternsInMask = _maskParser.GetTags();
var splitsInMask = _maskParser.GetSplits();
fileName = fileName.Remove(0, splitsInMask[0].Length); // Remove first split
for (var i = 0; i < splitsInMask.Count - 1; i++)
{
var indexOfSplit = splitsInMask[i + 1] != String.Empty
? fileName.IndexOf(splitsInMask[i + 1], StringComparison.Ordinal)
: fileName.Length;
var tagValueInFileName = fileName.Substring(0, indexOfSplit);
ChangeTag(tagPatternsInMask[i], tagValueInFileName);
fileName = fileName.Remove(0, indexOfSplit + splitsInMask[i + 1].Length);
}
}