Пример #1
0
 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);
 }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }
Пример #4
0
 public ActionResult Index(OrgSearchModel m)
 {
     var model = new OrgSearchDrop(m);
     model.RemoveExistingLop(DbUtil.Db, model.Id, OrgSearchDrop.Op);
     return View(model);
 }