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

比較結果を取得する

IDiffオブジェクトのGetComparisonメソッドを用いてプロジェクトの比較結果(IModelComparison型)を取得できます。GetComparisonメソッドでは、指定するプロジェクトを対象にした直前の比較結果を取得します。

tip

GetComparisonメソッドでは、UIで表示中の比較結果も取得できます。

また、IModelComparisonオブジェクトのGetMatchメソッドを用いて、指定したモデルの比較情報を取得できます。

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

// 現在のモデルの差分情報を出力します
var model = c.App.Workspace.CurrentModel;
IMatch match = comparison.GetMatch(model);

if (!match.HasDifference)
{
c.App.Output.WriteLine("差分比較", "差分はありません。");
return;
}

foreach (IDifference difference in match.Differences)
{
if (difference.IsNewItem)
{
c.App.Output.WriteLine("差分比較", "追加したモデルです。");
}
if (difference.IsUpdateItem)
{
c.App.Output.WriteLine("差分比較", $"フィールド:{difference.Field}が{difference.OldValue}から{difference.NewValue}に更新されました。");
}
}
}