static void runMerge(List <XDocument> ccdList, RuleSet ruleSet, Guid mergeId) { try { Console.WriteLine("Merge Starting..."); var startTime = DateTime.Now; var xMaster = XDocument.Parse("<empty/>"); foreach (var i in ruleSet.PreFormatRules) { using (var xRule = RuleFactory.BuildPreFormatRule(mergeId, i.RuleName, i.RuleVersion, ccdList)) { xRule.Merge(); } } using (var xRule = RuleFactory.BuildPrimaryRule(mergeId, ruleSet.PrimaryRule.RuleName, ruleSet.PrimaryRule.RuleVersion, ccdList)) { xRule.Merge(); xMaster = xRule.GetMasterCcd(); } foreach (var i in ruleSet.DeDuplicationRules) { using (var xRule = RuleFactory.BuildDeDupRule(mergeId, i.RuleName, i.RuleVersion, ccdList, xMaster)) { xRule.Merge(); xMaster = xRule.GetMasterCcd(); } } foreach (var i in ruleSet.PostFormatRules) { using (var xRule = RuleFactory.BuildPostFormatRule(mergeId, i.RuleName, i.RuleVersion, xMaster)) { xRule.Merge(); xMaster = xRule.GetMasterCcd(); } } var runTime = DateTime.Now - startTime; Console.WriteLine("Merge Complete in: " + runTime.TotalSeconds.ToString()); } catch (Exception) { Console.WriteLine("Error In Merge"); } }
protected void MergeCCDs(List <string> excludeRules) { var ccdList = new List <XDocument>(); //var ruleList = new RuleList(); var ruleSet = DefaultRuleset.GetDefaultRuleset(); ccdList.Add(XDocument.Load(Server.MapPath("~/HHIC_CCD_1.xml"))); ccdList.Add(XDocument.Load(Server.MapPath("~/HHIC_CCD_2.xml"))); ccdList.Add(XDocument.Load(Server.MapPath("~/HHIC_CCD_3.xml"))); TxtCcd1.InnerText = ccdList[0].ToString(); TxtCcd2.InnerText = ccdList[1].ToString(); TxtCcd3.InnerText = ccdList[2].ToString(); XDocument MasterCcd = XDocument.Parse("<empty />"); var mergeId = Guid.NewGuid(); foreach (var i in ruleSet.PreFormatRules.Where(x => !excludeRules.Contains(x.RuleName))) { using (var xRule = RuleFactory.BuildPreFormatRule(mergeId, i.RuleName, 0, ccdList)) { xRule.Merge(); } } using (var xRule = RuleFactory.BuildPrimaryRule(mergeId, ruleSet.PrimaryRule.RuleName, 0, ccdList)) { xRule.Merge(); MasterCcd = xRule.GetMasterCcd(); } foreach (var i in ruleSet.DeDuplicationRules.Where(x => !excludeRules.Contains(x.RuleName))) { using (var xRule = RuleFactory.BuildDeDupRule(mergeId, i.RuleName, 0, ccdList, MasterCcd)) { xRule.Merge(); MasterCcd = xRule.GetMasterCcd(); } } foreach (var i in ruleSet.PostFormatRules.Where(x => !excludeRules.Contains(x.RuleName))) { using (var xRule = RuleFactory.BuildPostFormatRule(mergeId, i.RuleName, 0, MasterCcd)) { xRule.Merge(); MasterCcd = xRule.GetMasterCcd(); } } TxtMasterCcd.InnerText = MasterCcd.ToString(); //var mem = new MemoryStream(); //// Code used after creating package above... (notice the ref mem). //HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; //HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=System.DateTime.Now" + ".docx"); //mem.Position = 0; //mem.CopyTo(HttpContext.Current.Response.OutputStream); //HttpContext.Current.Response.Flush(); //HttpContext.Current.Response.End(); }