public SmugglerResult Execute(bool ensureStepsProcessed = true) { var result = _result ?? new SmugglerResult(); using (_patcher?.Initialize()) using (_source.Initialize(_options, result, out long buildVersion)) using (_destination.Initialize(_options, result, buildVersion)) { var buildType = BuildVersion.Type(buildVersion); var currentType = _source.GetNextType(); while (currentType != DatabaseItemType.None) { ProcessType(currentType, result, buildType, ensureStepsProcessed); currentType = _source.GetNextType(); } if (ensureStepsProcessed) { EnsureProcessed(result); } return(result); } }