//Importing policies private static void CopyPolicies(RuleStore sourceRuleStore, RuleStore targetRuleStore, Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver dd) { RuleSetInfoCollection sourceRulesetInfoList = sourceRuleStore.GetRuleSets(RuleStore.Filter.All); RuleSetInfoCollection targetRulesetInfoList = targetRuleStore.GetRuleSets(RuleStore.Filter.All); foreach (RuleSetInfo targetItem in targetRulesetInfoList) { if (targetItem.Published) { } } foreach (RuleSetInfo item in sourceRulesetInfoList) { RuleSet policy = sourceRuleStore.GetRuleSet(item); RuleSet targetPolicy = targetRuleStore.GetRuleSet(item); try { System.Console.Out.WriteLine("Importing Policy ({0}) ..", policy.Name); targetRuleStore.Add(policy); } catch (Microsoft.RuleEngine.RuleStoreRuleSetAlreadyPublishedException e) { System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetAlreadyPublishedException) Undeploying RulesetInfo {1}", policy.Name, item.Name); //dd.Undeploy(item); //System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetAlreadyPublishedException) Successfully undeployed RulesetInfo {1}, next remove policy ", policy.Name, item.Name); bool toDeploy = false; try { targetRuleStore.Remove(policy); } catch (Microsoft.RuleEngine.RuleStoreRuleSetDeployedException ex) { dd.Undeploy(item); targetRuleStore.Remove(policy); toDeploy = true; } targetRuleStore.Add(policy); targetRuleStore.Publish(policy); if (toDeploy) { dd.Deploy(item); toDeploy = false; } } catch (Microsoft.RuleEngine.RuleStoreRuleSetDeployedException e) { System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetDeployedException) Undeploying RulesetInfor {1}", policy.Name, item.Name); dd.Undeploy(item); targetRuleStore.Remove(policy); targetRuleStore.Add(policy); dd.Deploy(item); } } }
//Importing policies private static void CopyPolicies(RuleStore sourceRuleStore, RuleStore targetRuleStore, Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver dd) { RuleSetInfoCollection sourceRulesetInfoList = sourceRuleStore.GetRuleSets(RuleStore.Filter.All); RuleSetInfoCollection targetRulesetInfoList = targetRuleStore.GetRuleSets(RuleStore.Filter.All); foreach (RuleSetInfo targetItem in targetRulesetInfoList) { if (targetItem.Published) { } } foreach (RuleSetInfo item in sourceRulesetInfoList) { RuleSet policy = sourceRuleStore.GetRuleSet(item); RuleSet targetPolicy = targetRuleStore.GetRuleSet(item); try { System.Console.Out.WriteLine("Importing Policy ({0}) .." , policy.Name); targetRuleStore.Add(policy); } catch (Microsoft.RuleEngine.RuleStoreRuleSetAlreadyPublishedException e) { System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetAlreadyPublishedException) Undeploying RulesetInfo {1}", policy.Name, item.Name); //dd.Undeploy(item); //System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetAlreadyPublishedException) Successfully undeployed RulesetInfo {1}, next remove policy ", policy.Name, item.Name); bool toDeploy = false; try { targetRuleStore.Remove(policy); } catch (Microsoft.RuleEngine.RuleStoreRuleSetDeployedException ex) { dd.Undeploy(item); targetRuleStore.Remove(policy); toDeploy = true; } targetRuleStore.Add(policy); targetRuleStore.Publish(policy); if (toDeploy) { dd.Deploy(item); toDeploy = false; } } catch (Microsoft.RuleEngine.RuleStoreRuleSetDeployedException e) { System.Console.Out.WriteLine("Importing Policy ({0}) : (RuleStoreRuleSetDeployedException) Undeploying RulesetInfor {1}", policy.Name, item.Name); dd.Undeploy(item); targetRuleStore.Remove(policy); targetRuleStore.Add(policy); dd.Deploy(item); } } }