public virtual Data.FileChange ConvertFile(FileDiff fileDiff)
{
Requires.NotNull(fileDiff, "fileDiff");
// Figure out the change type
Data.FileChange chg;
if (String.Equals(fileDiff.ModifiedFile, "/dev/null"))
{
// Deletion
chg = new Data.FileRemoval()
{
FileName = CleanFileName(fileDiff.OriginalFile)
};
}
else if (String.Equals(fileDiff.OriginalFile, "/dev/null"))
{
// Addition
chg = new Data.FileAddition()
{
FileName = CleanFileName(fileDiff.ModifiedFile)
};
}
else
{
// Modification
chg = new Data.FileModification()
{
FileName = CleanFileName(fileDiff.OriginalFile),
NewFileName = CleanFileName(fileDiff.ModifiedFile)
};
}
// Fill the lines
chg.Diff = String.Join(Environment.NewLine, fileDiff.Hunks.Select(WriteHunk));
return chg;
}