Пример #1
0
        public ActionResult Start(int tag, int meetingid, bool addasmembers)
        {
            var runningtotals = new AddToOrgFromTagRun
            {
                Started   = DateTime.Now,
                Count     = 0,
                Processed = 0,
                Orgid     = meetingid
            };

            DbUtil.Db.AddToOrgFromTagRuns.InsertOnSubmit(runningtotals);
            DbUtil.Db.SubmitChanges();
            var host = Util.Host;
            var qid  = Util.QueryBuilderScratchPadId;

            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.BelowNormal;
                var Db = new CMSDataContext(Util.GetConnectionString(host));
                IEnumerable <int> q = null;
                if (tag == -1)                 // (last query)
                {
                    q = Db.PeopleQuery(qid).Select(pp => pp.PeopleId);
                }
                else
                {
                    q = from t in Db.TagPeople
                        where t.Id == tag
                        select t.PeopleId;
                }
                var pids    = q.ToList();
                var meeting = Db.Meetings.SingleOrDefault(mm => mm.MeetingId == meetingid);
                var dt      = meeting.MeetingDate.Value;
                var orgid   = meeting.OrganizationId;
                foreach (var pid in pids)
                {
                    Db.Dispose();
                    Db = new CMSDataContext(Util.GetConnectionString(host));
                    if (addasmembers)
                    {
                        OrganizationMember.InsertOrgMembers(Db,
                                                            orgid, pid, MemberTypeCode.Member, dt, null, false);
                    }
                    Db.RecordAttendance(meetingid, pid, true);
                    var r = Db.AddToOrgFromTagRuns.Where(mm => mm.Orgid == meetingid).OrderByDescending(mm => mm.Id).First();
                    r.Processed++;
                    r.Count = pids.Count;
                    Db.SubmitChanges();
                }
                var rr       = Db.AddToOrgFromTagRuns.Where(mm => mm.Orgid == meetingid).OrderByDescending(mm => mm.Id).First();
                rr.Completed = DateTime.Now;
                Db.SubmitChanges();
                Db.UpdateMainFellowship(orgid);
            });
            return(Redirect("/AddAttendeesFromTag/Progress/" + meetingid));
        }
        public ActionResult Start(int tag, int orgid, bool pending = false, bool prospect = false)
        {
            var runningtotals = new AddToOrgFromTagRun
            {
                Started   = DateTime.Now,
                Count     = 0,
                Processed = 0,
                Orgid     = orgid
            };

            DbUtil.Db.AddToOrgFromTagRuns.InsertOnSubmit(runningtotals);
            DbUtil.Db.SubmitChanges();
            var host = Util.Host;
            var qid  = DbUtil.Db.FetchLastQuery().Id;

            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;
                var Db  = new CMSDataContext(Util.GetConnectionString(host));
                var cul = Db.Setting("Culture", "en-US");
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(cul);
                Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(cul);
                IEnumerable <int> q = null;
                if (tag == -1)                 // (last query)
                {
                    q = Db.PeopleQuery(qid).Select(pp => pp.PeopleId);
                }
                else
                {
                    q = from t in Db.TagPeople
                        where t.Id == tag
                        select t.PeopleId;
                }
                var pids = q.ToList();
                foreach (var pid in pids)
                {
                    Db.Dispose();
                    Db = new CMSDataContext(Util.GetConnectionString(host));
                    OrganizationMember.InsertOrgMembers(Db, orgid, pid,
                                                        prospect ? MemberTypeCode.Prospect : MemberTypeCode.Member,
                                                        DateTime.Now, null, pending);
                    var r = Db.AddToOrgFromTagRuns.Where(mm => mm.Orgid == orgid).OrderByDescending(mm => mm.Id).First();
                    r.Processed++;
                    r.Count = pids.Count;
                    Db.SubmitChanges();
                }
                var rr       = Db.AddToOrgFromTagRuns.Where(mm => mm.Orgid == orgid).OrderByDescending(mm => mm.Id).First();
                rr.Completed = DateTime.Now;
                Db.SubmitChanges();
                Db.UpdateMainFellowship(orgid);
            });
            return(Redirect("/AddToOrgFromTag/Progress/" + orgid));
        }