比較結果を取得する
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}に更新されました。");
}
}
}