public ActionResult PyScript(string name) { try { // var q = new QueryFunctions(DbUtil.Db); // var s = q.SqlNameCountArray("test", @" //SELECT ms.Description Name, COUNT(*) Cnt //FROM dbo.People p //JOIN lookup.MemberStatus ms ON ms.Id = p.MemberStatusId //GROUP BY ms.Description //"); // Response.ContentType = "text/plain"; // return Content(s); #if DEBUG2 var script = System.IO.File.ReadAllText(Server.MapPath("/chart.py")); #else var script = DbUtil.Db.ContentOfTypePythonScript(name); #endif if (!script.HasValue()) { return(Message("no script named " + name)); } var pe = new PythonEvents(Util.Host, script); return(View(pe)); } catch (Exception ex) { return(RedirectShowError(ex.Message)); } }
public ActionResult PyScriptForm(string name) { try { var script = FetchPyScriptForm(name); if (!script.HasValue()) { return(Message("no script named " + name)); } var pe = new PythonEvents(Util.Host); foreach (var key in Request.QueryString.AllKeys) { pe.DictionaryAdd(key, Request.QueryString[key]); } pe.Data.pyscript = name; pe.HttpMethod = "get"; pe.RunScript(script); return(View(pe)); } catch (Exception ex) { return(RedirectShowError(ex.Message)); } }
public ActionResult RunTestScript(string script) { Util.IsInRoleEmailTest = true; var ret = PythonEvents.RunScript(DbUtil.Db, script); return(Content(ret)); }
public ActionResult Test() { var s = System.IO.File.ReadAllText(Server.MapPath("~/test.py")); ViewBag.text = PythonEvents.RunScript(Util.Host, s); return(View()); }
public ActionResult PyScript(Guid id, string report) { var content = DbUtil.Db.ContentOfTypePythonScript(report); if (content == null) { return(Content("no script named " + report)); } if (!content.Contains("BlueToolbarReport")) { return(Content("Missing Call to Query Function 'BlueToolbarReport'")); } if (id == Guid.Empty) { return(Content("Must be run from the BlueToolbar")); } var pe = new PythonEvents(Util.Host); pe.DictionaryAdd("BlueToolbarGuid", id.ToCode()); foreach (var key in Request.QueryString.AllKeys) { pe.DictionaryAdd(key, Request.QueryString[key]); } pe.RunScript(content); return(View(pe)); }
public ActionResult Test() { var s = @" q = model.ChangedAddresses() for v in q: print 'Hi {} {}, \nI noticed you have moved to {}\n'.format(v.FirstName, v.LastName, v.PrimaryCity) "; var ret = PythonEvents.RunScript(DbUtil.Db, s); return(Content("<pre>{0}</pre>".Fmt(ret))); }
public ActionResult Script(string id) { try { var script = DbUtil.Db.Content(id); PythonEvents.RunScript(DbUtil.Db, script.Body); } catch (Exception e) { return(Content(e.Message)); } return(Content("done")); }
public void ParseSettings() { // if (HttpContext.Current.Items.Contains("RegSettings")) // return; var list = new Dictionary <int, Settings>(); if (masterorgid.HasValue) { var q = from o in UserSelectClasses(masterorg) select new { o.OrganizationId, o.RegSetting }; foreach (var i in q) { list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId); } list[masterorg.OrganizationId] = new Settings(masterorg.RegSetting, DbUtil.Db, masterorg.OrganizationId); } else if (_orgid == null) { return; } else if (org != null) { list[_orgid.Value] = new Settings(org.RegSetting, DbUtil.Db, _orgid.Value); } // if (HttpContext.Current.Items.Contains("RegSettings")) // return; HttpContext.Current.Items["RegSettings"] = list; if (org == null || !org.AddToSmallGroupScript.HasValue()) { return; } var script = DbUtil.Db.Content(org.AddToSmallGroupScript); if (script == null || !script.Body.HasValue()) { return; } try { var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body); HttpContext.Current.Items["PythonEvents"] = pe; } catch (Exception ex) { org.AddToExtraData("Python.errors", ex.Message); throw; } }
public ActionResult RunScript(string id) { try { var script = DbUtil.Db.Content(id); var pe = new PythonEvents(DbUtil.Db, id, script.Body); pe.instance.Run(); } catch (Exception e) { return(Content(e.Message)); } return(Content("done")); }
public SummaryInfo(CMSDataContext db, int pid, int oid) { this.db = db; OrgMember = OrganizationMember.Load(db, pid, oid); if (!OrgMember.OnlineRegData.HasValue()) { return; } // ReSharper disable once UseObjectOrCollectionInitializer Person = new OnlineRegPersonModel0(OrgMember.OnlineRegData, db); Person.setting = db.CreateRegistrationSettings(OrgMember.Organization.RegSettingXml, oid); Handlebars.RegisterHelper("Registrant", Registrant); Handlebars.RegisterHelper("IfShowTransaction", IfShowTransaction); Handlebars.RegisterHelper("IfSupportMissionTrip", IfSupportMissionTrip); Handlebars.RegisterHelper("AskItems", AskItems); Handlebars.RegisterHelper("IfAskAllergies", IfAskAllergies); Handlebars.RegisterHelper("IfAskCheckboxes", IfAskCheckboxes); Handlebars.RegisterHelper("IfAskCoaching", IfAskCoaching); Handlebars.RegisterHelper("IfAskChurch", IfAskChurch); Handlebars.RegisterHelper("IfAskDoctor", IfAskDoctor); Handlebars.RegisterHelper("IfAskDropdown", IfAskDropdown); Handlebars.RegisterHelper("IfAskEmContact", IfAskEmContact); Handlebars.RegisterHelper("IfAskExtraQuestions", IfAskExtraQuestions); Handlebars.RegisterHelper("IfAskGradeOptions", IfAskGradeOptions); Handlebars.RegisterHelper("IfAskHeader", IfAskHeader); Handlebars.RegisterHelper("IfAskInstruction", IfAskInstruction); Handlebars.RegisterHelper("IfAskInsurance", IfAskInsurance); Handlebars.RegisterHelper("IfAskMenu", IfAskMenu); Handlebars.RegisterHelper("IfAskParents", IfAskParents); Handlebars.RegisterHelper("IfAskRequest", IfAskRequest); Handlebars.RegisterHelper("IfAskSize", IfAskSize); Handlebars.RegisterHelper("IfAskSms", IfAskSms); Handlebars.RegisterHelper("IfAskTextQuestions", IfAskTextQuestions); Handlebars.RegisterHelper("IfAskTickets", IfAskTickets); Handlebars.RegisterHelper("IfAskTylenolEtc", IfAskTylenolEtc); Handlebars.RegisterHelper("IfAskYesNoQuestions", IfAskYesNoQuestions); Handlebars.RegisterHelper("IfHasAgeGroups", IfHasAgeGroups); Handlebars.RegisterHelper("MenuItems", MenuItems); Handlebars.RegisterHelper("Checkboxes", Checkboxes); Handlebars.RegisterHelper("TopLabel", (writer, context, args) => { writer.Write(TopLabel); }); Handlebars.RegisterHelper("BottomStyle", (writer, context, args) => { writer.Write(RowStyle); }); PythonEvents.RegisterHelpers(db); }
public void AddToSmallGroup(CMSDataContext Db, OrganizationMember om, PythonEvents pe) { if (om == null) { return; } if (pe != null) { pe.instance.AddToSmallGroup(SmallGroup, om); } om.AddToGroup(Db, SmallGroup); if (MeetingTime.HasValue) { Attend.MarkRegistered(Db, om.OrganizationId, om.PeopleId, MeetingTime.Value, 1); } }
public void ParseSettings() { var list = new Dictionary <int, Settings>(); if (masterorgid.HasValue) { foreach (var o in UserSelectClasses(masterorg)) { list[o.OrganizationId] = DbUtil.Db.CreateRegistrationSettings(o.OrganizationId); } list[masterorg.OrganizationId] = DbUtil.Db.CreateRegistrationSettings(masterorg.OrganizationId); } else if (_orgid == null) { return; } else if (org != null) { list[_orgid.Value] = DbUtil.Db.CreateRegistrationSettings(_orgid.Value); } HttpContext.Current.Items["RegSettings"] = list; if (org == null || !org.AddToSmallGroupScript.HasValue()) { return; } var script = DbUtil.Db.Content(org.AddToSmallGroupScript); if (script == null || !script.Body.HasValue()) { return; } Log("Script:" + org.AddToSmallGroupScript); try { var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body); HttpContext.Current.Items["PythonEvents"] = pe; } catch (Exception ex) { Log("PythonError"); org.AddToExtraData("Python.errors", ex.Message); throw; } }
public ActionResult PyScriptForm() { try { var pe = new PythonEvents(Util.Host); foreach (var key in Request.Form.AllKeys) { pe.DictionaryAdd(key, Request.Form[key]); } pe.HttpMethod = "post"; var script = FetchPyScriptForm(pe.Data.pyscript); return(Content(pe.RunScript(script))); } catch (Exception ex) { return(RedirectShowError(ex.Message)); } }
public ActionResult PyScript(string name, string p1, string p2, string v1, string v2) { try { var script = DbUtil.Db.ContentOfTypePythonScript(name); if (!script.HasValue()) { return(Message("no script named " + name)); } if (script.Contains("model.Form")) { return(Redirect("/PyScriptForm/" + name)); } script = script.Replace("@P1", p1 ?? "NULL") .Replace("@P2", p2 ?? "NULL") .Replace("V1", v1 ?? "None") .Replace("V2", v2 ?? "None"); if (script.Contains("@qtagid")) { var id = DbUtil.Db.FetchLastQuery().Id; var tag = DbUtil.Db.PopulateSpecialTag(id, DbUtil.TagTypeId_Query); script = script.Replace("@qtagid", tag.Id.ToString()); } var pe = new PythonEvents(Util.Host); foreach (var key in Request.QueryString.AllKeys) { pe.DictionaryAdd(key, Request.QueryString[key]); } pe.RunScript(script); return(View(pe)); } catch (Exception ex) { return(RedirectShowError(ex.Message)); } }
public ActionResult VoteLinkSg(string id, string message, bool?confirm) { if (!id.HasValue()) { return(Content("bad link")); } var guid = id.ToGuid(); if (guid == null) { return(Content("invalid link")); } var ot = DbUtil.Db.OneTimeLinks.SingleOrDefault(oo => oo.Id == guid.Value); if (ot == null) { return(Content("invalid link")); } if (ot.Used) { return(Content("link used")); } if (ot.Expires.HasValue && ot.Expires < DateTime.Now) { return(Content("link expired")); } var a = ot.Querystring.SplitStr(",", 5); var oid = a[0].ToInt(); var pid = a[1].ToInt(); var emailid = a[2].ToInt(); var pre = a[3]; var smallgroup = a[4]; var q = (from pp in DbUtil.Db.People where pp.PeopleId == pid let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == oid) let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == oid && oo.PeopleId == pid) select new { p = pp, org = org, om = om }).Single(); if (q.org == null) { return(Content("org missing, bad link")); } if ((q.org.RegistrationTypeId ?? RegistrationTypeCode.None) == RegistrationTypeCode.None) { return(Content("votelink is no longer active")); } if (q.om == null && q.org.Limit <= q.org.RegLimitCount(DbUtil.Db)) { return(Content("sorry, maximum limit has been reached")); } if (q.om == null && (q.org.RegistrationClosed == true || q.org.OrganizationStatusId == OrgStatusCode.Inactive)) { return(Content("sorry, registration has been closed")); } var setting = new Settings(q.org.RegSetting, DbUtil.Db, oid); if (IsSmallGroupFilled(setting, oid, smallgroup)) { return(Content("sorry, maximum limit has been reached for " + smallgroup)); } var omb = q.om; omb = OrganizationMember.InsertOrgMembers(DbUtil.Db, oid, pid, MemberTypeCode.Member, DateTime.Now, null, false); //DbUtil.Db.UpdateMainFellowship(oid); if (q.org.AddToSmallGroupScript.HasValue()) { var script = DbUtil.Db.Content(q.org.AddToSmallGroupScript); if (script != null && script.Body.HasValue()) { try { var pe = new PythonEvents(DbUtil.Db, "RegisterEvent", script.Body); pe.instance.AddToSmallGroup(smallgroup, omb); } catch (Exception) { } } } omb.AddToGroup(DbUtil.Db, smallgroup); omb.AddToGroup(DbUtil.Db, "emailid:" + emailid); ot.Used = true; DbUtil.Db.SubmitChanges(); DbUtil.LogActivity("Votelink: {0}".Fmt(q.org.OrganizationName)); if (confirm == true) { var subject = Util.PickFirst(setting.Subject, "no subject"); var msg = Util.PickFirst(setting.Body, "no message"); msg = CmsData.API.APIOrganization.MessageReplacements(DbUtil.Db, q.p, q.org.DivisionName, q.org.OrganizationName, q.org.Location, msg); msg = msg.Replace("{details}", smallgroup); var NotifyIds = DbUtil.Db.StaffPeopleForOrg(q.org.OrganizationId); try { DbUtil.Db.Email(NotifyIds[0].FromEmail, q.p, subject, msg); // send confirmation } catch (Exception ex) { DbUtil.Db.Email(q.p.FromEmail, NotifyIds, q.org.OrganizationName, "There was a problem sending confirmation from org: " + ex.Message); } DbUtil.Db.Email(q.p.FromEmail, NotifyIds, q.org.OrganizationName, "{0} has registered for {1}<br>{2}<br>(from votelink)".Fmt(q.p.Name, q.org.OrganizationName, smallgroup)); } return(Content(message)); }
public Dictionary <Person, string> NoticesToSend() { var leaderNotices = new Dictionary <Person, string>(); const int days = 36; var olist = FetchOrgs().Select(oo => oo.OrganizationId).ToList(); var alist = (from p in DbUtil.Db.RecentAbsents(null, null, days) where olist.Contains(p.OrganizationId) select p).ToList(); var mlist = (from r in DbUtil.Db.LastMeetings(null, null, days) where olist.Contains(r.OrganizationId) select r).ToList(); var plist = (from om in DbUtil.Db.ViewOrganizationLeaders where olist.Contains(om.OrganizationId) group om.OrganizationId by om.PeopleId into leaderlist select leaderlist).ToList(); PythonEvents.RegisterHelpers(DbUtil.Db); var template = HandlebarsDotNet.Handlebars.Compile(Resource1.RecentVisitsAbsents); var sb = new StringBuilder("Notices sent to:</br>\n<table>\n"); foreach (var p in plist) { var leader = DbUtil.Db.LoadPersonById(p.Key); var orgids = p.ToList(); var meetings = (from m in mlist where orgids.Contains(m.OrganizationId) let visitors = DbUtil.Db.OrgVisitorsAsOfDate(m.OrganizationId, m.Lastmeeting, true).ToList() let absents = (from a in alist where a.OrganizationId == m.OrganizationId select a).ToList() let org = DbUtil.Db.LoadOrganizationById(m.OrganizationId) select new { m.MeetingId, m.OrganizationId, LastMeeting = m.Lastmeeting.ToString2("g"), OrgName = Organization.FormatOrgName(m.OrganizationName, m.LeaderName, m.Location), m.LeaderName, ConsecutiveAbsentsThreshold = org.ConsecutiveAbsentsThreshold ?? 2, HasAbsents = absents.Any(), Absents = (from a in absents orderby a.Lastmeeting descending select new { a.PeopleId, a.Consecutive, a.Name2, HasHomePhone = a.HomePhone.HasValue(), HomePhone = a.HomePhone.FmtFone("H"), HasCellPhone = a.CellPhone.HasValue(), CellPhone = a.CellPhone.FmtFone("C"), HasEmail = a.EmailAddress.HasValue(), a.EmailAddress, MostRecentMeeting = a.Mostrecentmeeting.ToString2("d"), a.LeaderName, a.OrganizationName, LastMeeting = a.Lastmeeting.ToString2("d"), }).ToList(), HasVisits = visitors.Any(), Visits = (from a in visitors select new { a.LastName, a.PreferredName, LastAttended = a.LastAttended.ToString2("d"), HasHomePhone = a.HomePhone.HasValue(), HomePhone = a.HomePhone.FmtFone("H"), HasCellPhone = a.CellPhone.HasValue(), CellPhone = a.CellPhone.FmtFone("C"), HasEmail = a.Email.HasValue(), a.Email, }).ToList(), }).ToList(); foreach (var m in meetings) { sb.Append($"<tr><td>{leader.Name}</td><td>{m.OrgName}</td><td>{m.LastMeeting:g}</td></tr>\n"); } leaderNotices.Add(leader, template(meetings)); } sb.Append("</table>\n"); noticelist = sb.ToString(); return(leaderNotices); }
public ActionResult VoteLinkSg(string id, string message, bool?confirm, FormCollection formCollection) { var li = new LinkInfo(votelinkSTR, confirmSTR, id); if (li.error.HasValue()) { return(Message(li.error)); } try { var smallgroup = li.a[4]; if (!li.oid.HasValue) { throw new Exception("orgid missing"); } if (!li.pid.HasValue) { throw new Exception("peopleid missing"); } var q = (from pp in DbUtil.Db.People where pp.PeopleId == li.pid let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == li.oid) let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == li.oid && oo.PeopleId == li.pid) select new { p = pp, org, om }).Single(); if (q.org == null && DbUtil.Db.Host == "trialdb") { var oid = li.oid + Util.TrialDbOffset; q = (from pp in DbUtil.Db.People where pp.PeopleId == li.pid let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == oid) let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == oid && oo.PeopleId == li.pid) select new { p = pp, org, om }).Single(); } if (q.org == null) { throw new Exception("org missing, bad link"); } if ((q.org.RegistrationTypeId ?? RegistrationTypeCode.None) == RegistrationTypeCode.None) { throw new Exception("votelink is no longer active"); } if (q.om == null && q.org.Limit <= q.org.RegLimitCount(DbUtil.Db)) { throw new Exception("sorry, maximum limit has been reached"); } if (q.om == null && (q.org.RegistrationClosed == true || q.org.OrganizationStatusId == OrgStatusCode.Inactive)) { throw new Exception("sorry, registration has been closed"); } var setting = DbUtil.Db.CreateRegistrationSettings(li.oid.Value); if (IsSmallGroupFilled(setting, li.oid.Value, smallgroup)) { throw new Exception("sorry, maximum limit has been reached for " + smallgroup); } var omb = OrganizationMember.InsertOrgMembers(DbUtil.Db, li.oid.Value, li.pid.Value, MemberTypeCode.Member, DateTime.Now, null, false); if (q.org.AddToSmallGroupScript.HasValue()) { var script = DbUtil.Db.Content(q.org.AddToSmallGroupScript); if (script != null && script.Body.HasValue()) { try { var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body); pe.instance.AddToSmallGroup(smallgroup, omb); } catch (Exception) { } } } omb.AddToGroup(DbUtil.Db, smallgroup); li.ot.Used = true; DbUtil.Db.SubmitChanges(); DbUtil.LogActivity($"{votelinkSTR}{confirmSTR}: {smallgroup}", li.oid, li.pid); if (confirm == true) { var subject = Util.PickFirst(setting.Subject, "no subject"); var msg = Util.PickFirst(setting.Body, "no message"); msg = APIOrganization.MessageReplacements(DbUtil.Db, q.p, q.org.DivisionName, q.org.OrganizationId, q.org.OrganizationName, q.org.Location, msg); msg = msg.Replace("{details}", smallgroup); var NotifyIds = DbUtil.Db.StaffPeopleForOrg(q.org.OrganizationId); try { DbUtil.Db.Email(NotifyIds[0].FromEmail, q.p, subject, msg); // send confirmation } catch (Exception ex) { DbUtil.Db.Email(q.p.FromEmail, NotifyIds, q.org.OrganizationName, "There was a problem sending confirmation from org: " + ex.Message); } DbUtil.Db.Email(q.p.FromEmail, NotifyIds, q.org.OrganizationName, $"{q.p.Name} has registered for {q.org.OrganizationName}<br>{smallgroup}<br>(from votelink)"); } } catch (Exception ex) { DbUtil.LogActivity($"{votelinkSTR}{confirmSTR}Error: {ex.Message}", li.oid, li.pid); return(Message(ex.Message)); } return(Message(message)); }
public void AddToSmallGroup(CMSDataContext Db, OrganizationMember om, PythonEvents pe) { if (om == null) return; if (pe != null) { pe.instance.AddToSmallGroup(SmallGroup, om); om.Person.LogChanges(Db, om.PeopleId); } om.AddToGroup(Db, SmallGroup); if (MeetingTime.HasValue) Attend.MarkRegistered(Db, om.OrganizationId, om.PeopleId, MeetingTime.Value, 1); }
public ActionResult TestScript(string script) { return(Content(PythonEvents.RunScript(Util.Host, script))); }
public ActionResult RunPythonScript(string body) { return(Content(PythonEvents.RunScript(DbUtil.Db, body))); }
public void ParseSettings() { if (HttpContext.Current.Items.Contains("RegSettings")) { return; } var list = new Dictionary <int, Settings>(); if (_Divid.HasValue) { var q = from o in DbUtil.Db.Organizations where o.DivOrgs.Any(od => od.DivId == divid) where o.OrganizationStatusId == OrgStatusCode.Active where (o.RegistrationClosed ?? false) == false where o.RegistrationTypeId != RegistrationTypeCode.None select new { o.OrganizationId, o.RegSetting }; foreach (var i in q) { list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId); } } else if (masterorgid.HasValue) { var q = from o in UserSelectClasses(masterorg) select new { o.OrganizationId, o.RegSetting }; foreach (var i in q) { list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId); } list[masterorg.OrganizationId] = new Settings(masterorg.RegSetting, DbUtil.Db, masterorg.OrganizationId); } else if (org == null) { return; } else { list[_Orgid.Value] = new Settings(org.RegSetting, DbUtil.Db, _Orgid.Value); } if (HttpContext.Current.Items.Contains("RegSettings")) { return; } HttpContext.Current.Items.Add("RegSettings", list); if (org != null && org.AddToSmallGroupScript.HasValue()) { var script = DbUtil.Db.Content(org.AddToSmallGroupScript); if (script != null && script.Body.HasValue()) { try { var pe = new PythonEvents(DbUtil.Db, "RegisterEvent", script.Body); HttpContext.Current.Items.Add("PythonEvents", pe); } catch (Exception ex) { org.AddToExtraData("Python.errors", ex.Message); throw; } } } }