public SummaryInfo(CMSDataContext db, int pid, int oid) { this.db = db; hbContext = Handlebars.Create(); OrgMember = OrganizationMember.Load(db, pid, oid); Person = db.LoadPersonById(pid); Organization = db.LoadOrganizationById(oid); if (!OrgMember.OnlineRegData.HasValue()) { return; } // ReSharper disable once UseObjectOrCollectionInitializer RegPerson = new OnlineRegPersonModel0(OrgMember.OnlineRegData, db); if (RegPerson.PeopleId == 0) { RegPerson.PeopleId = pid; RegPerson.person = Person; } RegPerson.setting = db.CreateRegistrationSettings(Organization.RegSettingXml, oid); hbContext.RegisterHelper("Registrant", Registrant); hbContext.RegisterHelper("IfShowTransaction", IfShowTransaction); hbContext.RegisterHelper("IfSupportMissionTrip", IfSupportMissionTrip); hbContext.RegisterHelper("AskItems", AskItems); hbContext.RegisterHelper("IfAskAllergies", IfAskAllergies); hbContext.RegisterHelper("IfAskCheckboxes", IfAskCheckboxes); hbContext.RegisterHelper("IfAskCoaching", IfAskCoaching); hbContext.RegisterHelper("IfAskChurch", IfAskChurch); hbContext.RegisterHelper("IfAskDoctor", IfAskDoctor); hbContext.RegisterHelper("IfAskDropdown", IfAskDropdown); hbContext.RegisterHelper("IfAskEmContact", IfAskEmContact); hbContext.RegisterHelper("IfAskExtraQuestions", IfAskExtraQuestions); hbContext.RegisterHelper("IfAskGradeOptions", IfAskGradeOptions); hbContext.RegisterHelper("IfAskHeader", IfAskHeader); hbContext.RegisterHelper("IfAskInstruction", IfAskInstruction); hbContext.RegisterHelper("IfAskInsurance", IfAskInsurance); hbContext.RegisterHelper("IfAskPassport", IfAskPassport); hbContext.RegisterHelper("IfAskMenu", IfAskMenu); hbContext.RegisterHelper("IfAskParents", IfAskParents); hbContext.RegisterHelper("IfAskRequest", IfAskRequest); hbContext.RegisterHelper("IfAskSize", IfAskSize); hbContext.RegisterHelper("IfAskSms", IfAskSms); hbContext.RegisterHelper("IfAskTextQuestions", IfAskTextQuestions); hbContext.RegisterHelper("IfAskTickets", IfAskTickets); hbContext.RegisterHelper("IfAskTylenolEtc", IfAskTylenolEtc); hbContext.RegisterHelper("IfAskYesNoQuestions", IfAskYesNoQuestions); hbContext.RegisterHelper("IfHasAgeGroups", IfHasAgeGroups); hbContext.RegisterHelper("MenuItems", MenuItems); hbContext.RegisterHelper("Checkboxes", Checkboxes); hbContext.RegisterHelper("TopLabel", (writer, context, args) => { writer.Write(TopLabel); }); hbContext.RegisterHelper("BottomStyle", (writer, context, args) => { writer.Write(RowStyle); }); PythonModel.RegisterHelpers(db, handlebars: hbContext); }
private IHandlebars RegisterHelpers(PictureDirectoryController ctl) { var handlebars = PythonModel.RegisterHelpers(DbUtil.Db); handlebars.RegisterHelper("SmallUrl", (w, ctx, args) => { GetPictureUrl(ctx, w, ctx.SmallId, Picture.SmallMissingMaleId, Picture.SmallMissingFemaleId, Picture.SmallMissingGenericId); }); handlebars.RegisterHelper("MediumUrl", (w, ctx, args) => { GetPictureUrl(ctx, w, ctx.MediumId, Picture.MediumMissingMaleId, Picture.MediumMissingFemaleId, Picture.MediumMissingGenericId); }); handlebars.RegisterHelper("ImagePos", (w, ctx, args) => { w.Write(ctx.X != null || ctx.Y != null ? $"{ctx.X ?? 0}% {ctx.Y ?? 0}%" : "top"); }); handlebars.RegisterHelper("IfAccess", (w, opt, ctx, args) => { if (HasAccess) { opt.Template(w, (object)ctx); } else { opt.Inverse(w, (object)ctx); } }); handlebars.RegisterHelper("PagerTop", (w, ctx, args) => { w.Write(ViewExtensions2.RenderPartialViewToString(ctl, "PagerTop", this)); }); handlebars.RegisterHelper("PagerBottom", (w, ctx, args) => { w.Write(ViewExtensions2.RenderPartialViewToString(ctl, "PagerBottom", this)); }); handlebars.RegisterHelper("PagerHidden", (w, ctx, args) => { w.Write(ViewExtensions2.RenderPartialViewToString(ctl, "PagerHidden", this)); }); handlebars.RegisterHelper("SortBirthday", (w, ctx, args) => { w.Write(SortLink("Birthday")); }); handlebars.RegisterHelper("SortName", (w, ctx, args) => { w.Write(SortLink("Name")); }); handlebars.RegisterHelper("CityStateZip", (w, ctx, args) => { w.Write(Util.FormatCSZ4(ctx.City, ctx.St, ctx.Zip)); }); handlebars.RegisterHelper("BirthDay", (w, ctx, args) => { var dob = (string)ctx.DOB; w.Write(dob.ToDate().ToString2("m")); }); return(handlebars); }
public Dictionary <Person, string> NoticesToSend() { var leaderNotices = new Dictionary <Person, string>(); var olist = FetchOrgs().Select(oo => oo.OrganizationId).ToList(); var cn = new SqlConnection(Util.ConnectionString); cn.Open(); var orgs = string.Join(",", olist); var alist = cn.Query <RecentAbsentsInfo>("RecentAbsentsSP2", new { orgs }, commandType: CommandType.StoredProcedure, commandTimeout: 600).ToList(); var mlist = (from r in DbUtil.Db.LastMeetings(orgs) 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(); PythonModel.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, m.Lastmeeting, 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.LastAttend descending select new { a.PeopleId, a.Consecutive, a.Name2, HomePhone = a.HomePhone.FmtFone(), CellPhone = a.CellPhone.FmtFone(), a.EmailAddress, a.LeaderName, a.OrganizationName, a.OtherAttends, a.LastAttend }).ToList(), HasVisits = visitors.Any(), Visits = (from a in visitors select new { a.PeopleId, a.LastName, a.PreferredName, a.LastAttended, HomePhone = a.HomePhone.FmtFone(), CellPhone = a.CellPhone.FmtFone(), 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 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(); PythonModel.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.PeopleId, 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); }