예제 #1
0
파일: Program.cs 프로젝트: jvitrifork/CCD
        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");
            }
        }
예제 #2
0
        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();
        }