private DynamicParameters DonorTotalSummaryParameters(DonorTotalSummaryOptionsModel model, bool useMedianMin = false) { var queryParameters = new DynamicParameters(); queryParameters.Add("@enddt", model.StartDate); queryParameters.Add("@years", model.NumberOfYears); queryParameters.Add("@fund", model.Fund.Value.ToInt()); queryParameters.Add("@campus", model.Campus.Value.ToInt()); if (useMedianMin) { queryParameters.Add("@medianMin", model.MinimumMedianTotal); } if (model?.FundSet != null) // TODO: seems like a redundant null check, if model was null, it would have errored well before this point { var fundset = APIContributionSearchModel.GetCustomStatementsList(CurrentDatabase, model.FundSet.Value).JoinInts(","); queryParameters.Add("@fundids", fundset == "" ? null : fundset); } else { var authorizedFunds = CurrentDatabase.ContributionFunds.ScopedByRoleMembership(CurrentDatabase).Select(f => f.FundId).ToList(); var authorizedFundsCsv = string.Join(",", authorizedFunds); queryParameters.Add("@fundids", authorizedFundsCsv); } return(queryParameters); }
public static StatementSpecification GetStatementSpecification(CMSDataContext db, string name) { var standardheader = db.ContentHtml("StatementHeader", Resource1.ContributionStatementHeader); var standardnotice = db.ContentHtml("StatementNotice", Resource1.ContributionStatementNotice); if (name == null || name == "all") { return(new StatementSpecification() { Description = "All Statements", Notice = standardnotice, Header = standardheader, Funds = null }); } var standardsetlabel = db.Setting("StandardFundSetName", "Standard Statements"); if (name == standardsetlabel) { var funds = APIContributionSearchModel.GetCustomStatementsList(db, name); return(new StatementSpecification() { Description = standardsetlabel, Notice = standardnotice, Header = standardheader, Funds = funds }); } var xd = XDocument.Parse(Util.PickFirst(db.ContentOfTypeText("CustomStatements"), "<CustomStatement/>")); var ele = xd.XPathSelectElement($"//Statement[@description='{name}']"); if (ele == null) { return(null); } var desc = ele.Attribute("description")?.Value; var cs = new StatementSpecification { Description = desc }; var headerele = ele.Element("Header"); cs.Header = headerele != null ? string.Concat(headerele.Nodes().Select(x => x.ToString()).ToArray()) : standardheader; var noticeele = ele.Element("Notice"); cs.Notice = noticeele != null ? string.Concat(noticeele.Nodes().Select(x => x.ToString()).ToArray()) : standardnotice; cs.Funds = APIContributionSearchModel.GetCustomStatementsList(db, desc); return(cs); }
public static StatementSpecification GetStatementSpecification(CMSDataContext db, string name) { string nameOfChurch = db.Setting("NameOfChurch", "Name of Church"); string startAddress = db.Setting("StartAddress", "Start Address"); string churchPhone = db.Setting("ChurchPhone", "(000) 000-0000"); var standardheader = db.ContentHtml("StatementHeader", string.Format(Resource1.ContributionStatementHeader, nameOfChurch, startAddress, churchPhone)); var standardnotice = db.ContentHtml("StatementNotice", string.Format(Resource1.ContributionStatementNotice, nameOfChurch)); if (name == null || name == "all") { return(new StatementSpecification() { Notice = standardnotice, Header = standardheader, Funds = null }); } var standardsetlabel = db.Setting("StandardFundSetName", "Standard Statements"); if (name == standardsetlabel) { var funds = APIContributionSearchModel.GetCustomStatementsList(db, name); return(new StatementSpecification() { Description = standardsetlabel, Notice = standardnotice, Header = standardheader, Funds = funds }); } var xd = XDocument.Parse(Util.PickFirst(db.ContentOfTypeText("CustomStatements"), "<CustomStatement/>")); var statementSpec = xd.XPathSelectElement($"//Statement[@description='{name}']"); if (statementSpec == null) { return(null); } var desc = statementSpec.Attribute("description")?.Value; var cs = new StatementSpecification { Description = desc }; cs.Funds = APIContributionSearchModel.GetCustomStatementsList(db, desc); cs.Header = GetSectionHTML(db, "Header", statementSpec, standardheader); cs.Notice = GetSectionHTML(db, "Notice", statementSpec, standardnotice); cs.Template = GetSectionHTML(db, "Template", statementSpec); cs.TemplateBody = GetSectionHTML(db, "TemplateBody", statementSpec); cs.Footer = GetSectionHTML(db, "Footer", statementSpec); return(cs); }
private DynamicParameters DonorTotalSummaryParameters(DonorTotalSummaryOptionsModel m, bool useMedianMin = false) { var p = new DynamicParameters(); p.Add("@enddt", m.StartDate); p.Add("@years", m.NumberOfYears); if (useMedianMin) { p.Add("@medianMin", m.MinimumMedianTotal); } p.Add("@fund", m.Fund.Value.ToInt()); p.Add("@campus", m.Campus.Value.ToInt()); if (m?.FundSet != null) { var fundset = APIContributionSearchModel.GetCustomStatementsList(m.FundSet.Value).JoinInts(","); p.Add("@fundids", fundset); } else { p.Add("@fundids", null); } return(p); }
/// <summary> /// This returns a csv string of the fundids when a church is using Custom Statements and FundSets for different statements /// The csv string can be used in SQL using dbo.SplitInts in a query to match a set of fundids. /// </summary> public string CustomStatementsFundIdList(string name) { return(string.Join(",", APIContributionSearchModel.GetCustomStatementsList(db, name))); }