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 = DbUtil.Db.FetchLastQuery().Id; 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 joindate = meeting.MeetingDate.Value.AddMinutes(-1); 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, joindate, 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); }