示例#1
0
    private string FormatAsJson(ExpenseClaims claims)
    {
        StringBuilder result = new StringBuilder(16384);

        string hasDoxString =
            "<img baseid='E{5}' class='LocalIconDox action-icon' />";

        result.Append("{\"rows\":[");
        FinancialTransactionTagSets tagSets = FinancialTransactionTagSets.ForOrganization(CurrentOrganization);

        foreach (ExpenseClaim claim in claims)
        {
            StringBuilder extraTags = new StringBuilder();

            FinancialTransaction transaction = claim.FinancialTransaction;

            if (transaction != null)
            {
                foreach (FinancialTransactionTagSet tagSet in tagSets)
                {
                    FinancialTransactionTagType tagType = transaction.GetTag(tagSet);

                    extraTags.AppendFormat("\"tagSet{0}\":\"{1}\",",
                                           tagSet.Identity, tagType != null ? JsonSanitize(tagType.Name) : string.Empty);
                }
            }

            result.Append("{");
            result.AppendFormat(
                "\"description\":\"{2}\",\"budgetName\":\"{3}\",{6}\"amountRequested\":\"{4:N2}\",\"itemId\":\"E{5}\"," +
                "\"dox\":\"" + (claim.Documents.Count > 0 ? hasDoxString : "&nbsp;") + "\"," +
                "\"actions\":\"" +
                "<img id='IconApprovalE{5}' class='LocalIconApproval action-icon' baseid='E{5}' />" +
                "<img id='IconApprovedE{5}' class='LocalIconApproved status-icon' baseid='E{5}' />" +
                "<img id='IconWaitE{5}' class='LocalIconWait status-icon' baseid='E{5}' />" +
                "<img id='IconUndoE{5}' class='LocalIconUndo action-icon' baseid='E{5}' />" +
                "<img id='IconDenialE{5}' class='LocalIconDenial action-icon' baseid='E{5}' />" +
                "<img id='IconDeniedE{5}' class='LocalIconDenied status-icon' baseid='E{5}' />\"",
                "olditem", JsonSanitize(claim.ClaimerCanonical), JsonSanitize(claim.Description),
                JsonSanitize(claim.Budget.Name),
                claim.AmountCents / 100.0, claim.Identity, extraTags);
            result.Append("},");
        }

        result.Remove(result.Length - 1, 1);  // remove last comma

        result.Append("]}");

        return(result.ToString());
    }
    private string FormatAsJson(ExpenseClaims claims)
    {
        StringBuilder result = new StringBuilder(16384);

        string hasDoxString =
            "<img src='/Images/Icons/iconshock-search-256px.png' onmouseover=\\\"this.src='/Images/Icons/iconshock-search-hot-256px.png';\\\" onmouseout=\\\"this.src='/Images/Icons/iconshock-search-256px.png';\\\" baseid=\\\"E{5}\\\" class=\\\"LocalViewDox\\\" height=\\\"20\\\" width=\\\"20\\\" style=\\\"cursor:pointer\\\" />";

        result.Append("{\"rows\":[");
        FinancialTransactionTagSets tagSets = FinancialTransactionTagSets.ForOrganization(CurrentOrganization);

        foreach (ExpenseClaim claim in claims)
        {
            StringBuilder extraTags = new StringBuilder();

            FinancialTransaction transaction = claim.FinancialTransaction;

            if (transaction != null)
            {
                foreach (FinancialTransactionTagSet tagSet in tagSets)
                {
                    FinancialTransactionTagType tagType = transaction.GetTag(tagSet);

                    extraTags.AppendFormat("\"tagSet{0}\":\"{1}\",",
                                           tagSet.Identity, tagType != null ? JsonSanitize(tagType.Name) : string.Empty);
                }
            }

            result.Append("{");
            result.AppendFormat(
                "\"description\":\"{2}\",\"budgetName\":\"{3}\",{6}\"amountRequested\":\"{4:N2}\",\"itemId\":\"E{5}\"," +
                "\"dox\":\"" + (claim.Documents.Count > 0 ? hasDoxString : "&nbsp;") + "\"," +
                "\"actions\":\"" +
                "<img id=\\\"IconApprovalE{5}\\\" class=\\\"LocalIconApproval\\\" baseid=\\\"E{5}\\\" height=\\\"18\\\" width=\\\"24\\\" />" +
                "<img id=\\\"IconApprovedE{5}\\\" class=\\\"LocalIconApproved\\\" baseid=\\\"E{5}\\\" height=\\\"18\\\" width=\\\"24\\\" />" +
                "<img id=\\\"IconDenialE{5}\\\" class=\\\"LocalIconDenial\\\" baseid=\\\"E{5}\\\" height=\\\"18\\\" width=\\\"24\\\" />" +
                "<img id=\\\"IconDeniedE{5}\\\" class=\\\"LocalIconDenied\\\" baseid=\\\"E{5}\\\" height=\\\"18\\\" width=\\\"24\\\" />\"",
                "olditem", JsonSanitize(claim.ClaimerCanonical), JsonSanitize(claim.Description),
                JsonSanitize(claim.Budget.Name),
                claim.AmountCents / 100.0, claim.Identity, extraTags);
            result.Append("},");
        }

        result.Remove(result.Length - 1, 1);  // remove last comma

        result.Append("]}");

        return(result.ToString());
    }
示例#3
0
        private void Localize()
        {
            PageTitle      = Resources.Pages.Financial.ValidateReceipts_PageTitle;
            InfoBoxLiteral = Resources.Pages.Financial.ValidateReceipts_Info;
            this.LabelAttestCostsHeader.Text =
                Resources.Pages.Financial.ValidateReceipts_Header_ReceiptsAwaitingValidation;
            this.LabelGridHeaderAction.Text = Global.Global_Action;
            this.LabelGridHeaderBudget.Text = Resources.Pages.Financial.AttestCosts_GridHeader_Budget;
            // Reuse some strings from Approve Costs
            this.LabelGridHeaderDescription.Text = Resources.Pages.Financial.AttestCosts_GridHeader_Description;
            this.LabelGridHeaderDocs.Text        = Resources.Pages.Financial.AttestCosts_GridHeader_Docs;
            this.LabelGridHeaderRequested.Text   = Resources.Pages.Financial.AttestCosts_GridHeader_Requested;

            FinancialTransactionTagSets tagSets = FinancialTransactionTagSets.ForOrganization(CurrentOrganization);

            int descriptionWidth = 137 + 170;
            int tagWidth         = 170;

            if (tagSets.Count > 0)
            {
                descriptionWidth = 137 - tagSets.Count;
                tagWidth         = 360 / (tagSets.Count + 1);

                //this.LiteralBudgetNameWidth.Text = tagWidth.ToString(CultureInfo.InvariantCulture);

                StringBuilder tagSetHtml = new StringBuilder();

                foreach (FinancialTransactionTagSet tagSet in tagSets)
                {
                    tagSetHtml.AppendFormat(
                        "<th data-options=\"field:'tagSet{0}',width:{1},sortable:true,order:'asc'\">{2}</th>\r\n",
                        tagSet.Identity, tagWidth,
                        FinancialTransactionTagSetType.GetLocalizedName(tagSet.FinancialTransactionTagSetTypeId));
                }

                this.LiteralExtraTags.Text = tagSetHtml.ToString();
            }

            this.LiteralDescriptionThStart.Text = String.Format("<th data-options=\"field:'description',width:{0}\">",
                                                                descriptionWidth);
            this.LiteralBudgetThStart.Text =
                String.Format("<th data-options=\"field:'budgetName',width:{0},sortable:true\">", tagWidth);
        }
        protected void Page_Init(object sender, EventArgs e)
        {
            string tagSetIdsString = Request["ctl00$PlaceHolderMain$HiddenTagSetIdentifiers"];

            // Find our tag ids, either from previously hidden var or load from org

            if (String.IsNullOrEmpty(tagSetIdsString))
            {
                this._tagSetIds = FinancialTransactionTagSets.ForOrganization(CurrentOrganization).Identities;
            }
            else
            {
                string[] tagSetIdStrings = tagSetIdsString.Split(',');
                this._tagSetIds = new int[tagSetIdStrings.Length];

                for (int index = 0; index < tagSetIdStrings.Length; index++)
                {
                    this._tagSetIds[index] = Int32.Parse(tagSetIdStrings[index]);
                }
            }

            // Construct data source

            List <TagSetDataSourceItem> dataSourceVisibleTags = new List <TagSetDataSourceItem>();
            List <TagSetDataSourceItem> dataSourceForcedTags  = new List <TagSetDataSourceItem>();

            foreach (int tagSetId in this._tagSetIds)
            {
                TagSetDataSourceItem item = new TagSetDataSourceItem
                {
                    TagSetId            = tagSetId,
                    TagSetLocalizedName =
                        FinancialTransactionTagSetType.GetLocalizedName(
                            FinancialTransactionTagSet.FromIdentity(tagSetId).
                            FinancialTransactionTagSetTypeId)
                };

                FinancialTransactionTagSet tagSet = FinancialTransactionTagSet.FromIdentity(tagSetId);

                if (tagSet.VisibilityLevel <= 1)
                {
                    dataSourceVisibleTags.Add(item);

                    if (!tagSet.AllowUntagged)
                    {
                        dataSourceForcedTags.Add(item);
                    }
                }
            }

            // Bind data

            this.RepeaterTagLabels.DataSource      = dataSourceVisibleTags;
            this.RepeaterTagDrop.DataSource        = dataSourceVisibleTags;
            this.RepeaterTagDropScript.DataSource  = dataSourceVisibleTags;
            this.RepeaterErrorCheckTags.DataSource = dataSourceForcedTags;

            this.RepeaterTagLabels.DataBind();
            this.RepeaterTagDrop.DataBind();
            this.RepeaterTagDropScript.DataBind();
            this.RepeaterErrorCheckTags.DataBind();

            // Write set list back to hidden variable

            List <string> tagSetIdStringList = new List <string>();

            foreach (int tagSetId in this._tagSetIds)
            {
                tagSetIdStringList.Add(tagSetId.ToString(CultureInfo.InvariantCulture));
            }

            this.HiddenTagSetIdentifiers.Value = String.Join(",", tagSetIdStringList.ToArray());
        }