Ejemplo n.º 1
0
        public ActionResult Find(string fromDate, string toDate)
        {
            var      fdt           = fromDate.ToDate();
            DateTime tdt           = toDate.ToDate() ?? DateTime.Now;
            string   host          = CurrentDatabase.Host;
            var      runningtotals = new DuplicatesRun
            {
                Started   = DateTime.Now,
                Count     = 0,
                Processed = 0,
                Found     = 0
            };

            CurrentDatabase.DuplicatesRuns.InsertOnSubmit(runningtotals);
            CurrentDatabase.SubmitChanges();

            HostingEnvironment.QueueBackgroundWorkItem(ct =>
            {
                var db   = CMSDataContext.Create(host);
                var rt   = db.DuplicatesRuns.OrderByDescending(mm => mm.Id).First();
                var list = new List <string>();
                db.ExecuteCommand("delete duplicate");
                var q = from p in db.People
                        where p.CreatedDate > fdt
                        where p.CreatedDate < tdt.AddDays(1)
                        select p.PeopleId;
                rt.Count = q.Count();
                db.SubmitChanges();
                foreach (var p in q)
                {
                    var pids = db.FindPerson4(p);
                    rt.Processed++;
                    db.SubmitChanges();
                    if (!pids.Any())
                    {
                        continue;
                    }

                    foreach (var pid in pids)
                    {
                        if (pid.PeopleId != null)
                        {
                            var dupe = pid.PeopleId.Value;
                            var key  = $"{Math.Min(p, dupe)},{Math.Max(p, dupe)}";
                            if (!list.Contains(key))
                            {
                                db.InsertDuplicate(p, dupe);
                                list.Add(key);
                            }
                            rt.Found = list.Count;
                        }
                    }
                }
                rt.Completed = DateTime.Now;
                db.SubmitChanges();
            });
            return(Redirect("/Duplicates/Progress"));
        }
Ejemplo n.º 2
0
        public ActionResult Find(string fromDate, string toDate)
        {
            var    fdt           = fromDate.ToDate();
            var    tdt           = toDate.ToDate();
            string host          = Util.Host;
            var    runningtotals = new DuplicatesRun
            {
                Started   = DateTime.Now,
                Count     = 0,
                Processed = 0,
                Found     = 0
            };

            DbUtil.Db.DuplicatesRuns.InsertOnSubmit(runningtotals);
            DbUtil.Db.SubmitChanges();

            HostingEnvironment.QueueBackgroundWorkItem(ct =>
            {
                var db = DbUtil.Create(host);
                var rt = db.DuplicatesRuns.OrderByDescending(mm => mm.Id).First();
                db.ExecuteCommand("delete duplicate");
                var q = from p in db.People
                        where p.CreatedDate > fdt
                        where p.CreatedDate < tdt.Value.AddDays(1)
                        select p.PeopleId;
                rt.Count = q.Count();
                db.SubmitChanges();
                foreach (var p in q)
                {
                    var pids = db.FindPerson4(p);
                    rt.Processed++;
                    db.SubmitChanges();
                    if (!pids.Any())
                    {
                        continue;
                    }
                    foreach (var pid in pids)
                    {
                        if (pid.PeopleId != null)
                        {
                            db.InsertDuplicate(p, pid.PeopleId.Value);
                        }
                    }
                    rt.Found++;
                }
                rt.Completed = DateTime.Now;
                db.SubmitChanges();
            });
            return(Redirect("/Duplicates/Progress"));
        }
Ejemplo n.º 3
0
        public ActionResult Find(string FromDate, string ToDate)
        {
            var    fdt           = FromDate.ToDate();
            var    tdt           = ToDate.ToDate();
            string host          = Util.Host;
            var    runningtotals = new DuplicatesRun
            {
                Started   = DateTime.Now,
                Count     = 0,
                Processed = 0,
                Found     = 0
            };

            DbUtil.Db.DuplicatesRuns.InsertOnSubmit(runningtotals);
            DbUtil.Db.SubmitChanges();

            Alias.Task.Factory.StartNew(() =>
            {
                Thread.CurrentThread.Priority = ThreadPriority.Lowest;
                var Db = new CMSDataContext(Util.GetConnectionString(host));
                var rt = Db.DuplicatesRuns.OrderByDescending(mm => mm.Id).First();
                Db.ExecuteCommand("delete duplicate");
                var q = from p in Db.People
                        where p.CreatedDate > fdt
                        where p.CreatedDate < tdt.Value.AddDays(1)
                        select p.PeopleId;
                rt.Count = q.Count();
                Db.SubmitChanges();
                foreach (var p in q)
                {
                    var pids = Db.FindPerson4(p);
                    rt.Processed++;
                    Db.SubmitChanges();
                    if (pids.Count() == 0)
                    {
                        continue;
                    }
                    foreach (var pid in pids)
                    {
                        Db.InsertDuplicate(p, pid.PeopleId.Value);
                    }
                    rt.Found++;
                }
                rt.Completed = DateTime.Now;
                Db.SubmitChanges();
            });
            return(Redirect("/Manage/Duplicates/Progress"));
        }