Esempio n. 1
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 = 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.Count() == 0)
                        continue;
                    foreach(var pid in pids)
                        Db.InsertDuplicate(p, pid.PeopleId.Value);
					rt.Found++;
                }
				rt.Completed = DateTime.Now;
				Db.SubmitChanges();
            });
            return Redirect("/Duplicates/Progress");
        }
        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");
        }