public ActionResult Process(OrgSearchDrop model) { model.UpdateLongRunningOp(DbUtil.Db, OrgSearchDrop.Op); if (!model.Started.HasValue) { DbUtil.LogActivity($"OrgSearchDrop {model.Count} Members from {model.OrgCount} Orgs"); model.Process(DbUtil.Db); } return View(model); }
private void DoWork(OrgSearchDrop model) { Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; var db = DbUtil.Create(model.host); var cul = db.Setting("Culture", "en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(cul); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cul); LongRunningOp lop = null; foreach (var orginfo in model.orginfos) { var pids = (from m in db.OrganizationMembers where m.OrganizationId == orginfo.Id select m.PeopleId ).ToList(); var n = 0; foreach (var pid in pids) { n++; db.Dispose(); db = DbUtil.Create(model.host); var om = db.OrganizationMembers.Single(mm => mm.PeopleId == pid && mm.OrganizationId == orginfo.Id); if (DropDate.HasValue) { om.Drop(db, DropDate.Value); } else { om.Drop(db); } lop = FetchLongRunningOp(db, model.Id, Op); Debug.Assert(lop != null, "r != null"); lop.Processed++; lop.CustomMessage = $"Working on {orginfo.Name}, {n}/{pids.Count}"; db.SubmitChanges(); } var o = db.LoadOrganizationById(orginfo.Id); o.OrganizationStatusId = CmsData.Codes.OrgStatusCode.Inactive; db.SubmitChanges(); } // finished lop = FetchLongRunningOp(db, model.Id, Op); lop.Completed = DateTime.Now; db.SubmitChanges(); }
private void DoWork(OrgSearchDrop model) { Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; var db = DbUtil.Create(model.host); var cul = db.Setting("Culture", "en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo(cul); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cul); LongRunningOp lop = null; foreach (var orginfo in model.orginfos) { var pids = (from m in db.OrganizationMembers where m.OrganizationId == orginfo.Id select m.PeopleId ).ToList(); var n = 0; foreach (var pid in pids) { n++; db.Dispose(); db = DbUtil.Create(model.host); var om = db.OrganizationMembers.Single(mm => mm.PeopleId == pid && mm.OrganizationId == orginfo.Id); if (DropDate.HasValue) om.Drop(db, DropDate.Value); else om.Drop(db); lop = FetchLongRunningOp(db, model.Id, Op); Debug.Assert(lop != null, "r != null"); lop.Processed++; lop.CustomMessage = $"Working on {orginfo.Name}, {n}/{pids.Count}"; db.SubmitChanges(); } var o = db.LoadOrganizationById(orginfo.Id); o.OrganizationStatusId = CmsData.Codes.OrgStatusCode.Inactive; db.SubmitChanges(); } // finished lop = FetchLongRunningOp(db, model.Id, Op); lop.Completed = DateTime.Now; db.SubmitChanges(); }
public ActionResult Index(OrgSearchModel m) { var model = new OrgSearchDrop(m); model.RemoveExistingLop(DbUtil.Db, model.Id, OrgSearchDrop.Op); return View(model); }