メインコンテンツまでスキップ

差分を取得する

ここでは、プロジェクトの差分情報の取得方法を説明します。

public void GetAllDifference(ICommandContext c, ICommandParams p)
{
// 現在のプロジェクトの比較結果を取得します
var project = c.App.Workspace.CurrentProject;
IModelComparison comparison = c.App.Diff.GetComparison(project);

// 差分を抽出した比較情報を取得します
IMatchCollection matches = comparison.GetDifferencedMatches();
foreach (IMatch match in matches)
{
foreach (IDifference difference in match.Differences)
{
if (difference.IsNewItem)
{
// 追加差分の場合、追加したモデルはIMatch.Referenceで取得します
IModel model = match.Reference;
c.App.Output.WriteLine("差分比較", $"{model.Name}を追加しました。");
}
if (difference.IsOldItem)
{
// 削除差分の場合、削除したモデルはIMatch.Targetで取得します
IModel model = match.Target;
c.App.Output.WriteLine("差分比較", $"{model.Name}を削除しました。");
}
if (difference.IsUpdateItem)
{
IModel model = match.Reference;
c.App.Output.WriteLine("差分比較", $"{model.Name}のフィールド:{difference.Field}{difference.OldValue}から{difference.NewValue}に更新されました。");
}
}
}
}