Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #5
0
 /// <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)));
 }