private void IntializeTargetPackageWithCurrentRolloutVersion(ServicePackageType currentServicePackage, ServicePackageType targetServicePackage) { //Set target rolloutversion to current before comparison for (int i = 0; i < targetServicePackage.DigestedCodePackage.Length; i++) { ServicePackageTypeDigestedCodePackage targetDigestedCodePackage = targetServicePackage.DigestedCodePackage[i]; ServicePackageTypeDigestedCodePackage matchingCurrentDigestedCodePackage = currentServicePackage.DigestedCodePackage.FirstOrDefault( digestedCodePackage => ImageBuilderUtility.Equals(digestedCodePackage.CodePackage.Name, targetDigestedCodePackage.CodePackage.Name)); if (matchingCurrentDigestedCodePackage != null) { targetDigestedCodePackage.RolloutVersion = matchingCurrentDigestedCodePackage.RolloutVersion; } } //Set target rolloutversion for config to current before comparison if (targetServicePackage.DigestedConfigPackage != null) { foreach (ServicePackageTypeDigestedConfigPackage targetDigestedConfigPackage in targetServicePackage.DigestedConfigPackage) { ServicePackageTypeDigestedConfigPackage matchingCurrentDigestedConfigPackage = null; if (currentServicePackage.DigestedConfigPackage != null) { matchingCurrentDigestedConfigPackage = currentServicePackage.DigestedConfigPackage.FirstOrDefault( digestedConfigPackage => ImageBuilderUtility.Equals(digestedConfigPackage.ConfigPackage.Name, targetDigestedConfigPackage.ConfigPackage.Name)); if (matchingCurrentDigestedConfigPackage != null) { targetDigestedConfigPackage.RolloutVersion = matchingCurrentDigestedConfigPackage.RolloutVersion; } } } } //Set RolloutVersion for matching data packages to be same as current if (targetServicePackage.DigestedDataPackage != null) { foreach (ServicePackageTypeDigestedDataPackage targetDigestedDataPackage in targetServicePackage.DigestedDataPackage) { ServicePackageTypeDigestedDataPackage matchingCurrentDigestedDataPackage = null; if (currentServicePackage.DigestedDataPackage != null) { matchingCurrentDigestedDataPackage = currentServicePackage.DigestedDataPackage.FirstOrDefault( digestedDataPackage => ImageBuilderUtility.Equals(digestedDataPackage.DataPackage.Name, targetDigestedDataPackage.DataPackage.Name)); if (matchingCurrentDigestedDataPackage != null) { targetDigestedDataPackage.RolloutVersion = matchingCurrentDigestedDataPackage.RolloutVersion; } } } } }
private bool HasActivatorCodePackage( ServicePackageTypeDigestedCodePackage[] digestedCodePackages, out ServicePackageTypeDigestedCodePackage activatorCodePackage) { activatorCodePackage = null; foreach (var dcp in digestedCodePackages) { if (dcp.CodePackage.IsActivator) { activatorCodePackage = dcp; return(true); } } return(false); }