Esempio n. 1
0
        static public object FromBasic(IHasIdentity basic)
        {
            string argumentType = basic.GetType().ToString();

            switch (argumentType)
            {
            // ----- Is there any way to make self-writing code here through replication or similar, so
            // ----- that every case doesn't need to be listed?


            // ------------ COMMUNICATION CLASSES ------------

            case "Swarmops.Basic.Types.BasicCommunicationTurnaround":
                return(CommunicationTurnaround.FromBasic((BasicCommunicationTurnaround)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundComm":
                return(OutboundComm.FromBasic((BasicOutboundComm)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundCommRecipient":
                return(OutboundCommRecipient.FromBasic((BasicOutboundCommRecipient)basic));


            // ----------- FINANCIAL CLASSES ----------

            case "Swarmops.Basic.Types.BasicExpenseClaim":
                return(ExpenseClaim.FromBasic((BasicExpenseClaim)basic));

            case "Swarmops.Basic.Types.Financial.BasicCashAdvance":
                return(CashAdvance.FromBasic((BasicCashAdvance)basic));

            case "Swarmops.Basic.Types.BasicInboundInvoice":
                return(InboundInvoice.FromBasic((BasicInboundInvoice)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialAccount":
                return(FinancialAccount.FromBasic((BasicFinancialAccount)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransaction":
                return(FinancialTransaction.FromBasic((BasicFinancialTransaction)basic));

            case "Swarmops.Basic.Types.BasicFinancialValidation":
                return(FinancialValidation.FromBasic((BasicFinancialValidation)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoice":
                return(OutboundInvoice.FromBasic((BasicOutboundInvoice)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoiceItem":
                return(OutboundInvoiceItem.FromBasic((BasicOutboundInvoiceItem)basic));

            case "Swarmops.Basic.Types.BasicPayment":
                return(Payment.FromBasic((BasicPayment)basic));

            case "Swarmops.Basic.Types.BasicPaymentGroup":
                return(PaymentGroup.FromBasic((BasicPaymentGroup)basic));

            case "Swarmops.Basic.Types.BasicPayout":
                return(Payout.FromBasic((BasicPayout)basic));

            case "Swarmops.Basic.Types.BasicPayrollAdjustment":
                return(PayrollAdjustment.FromBasic((BasicPayrollAdjustment)basic));

            case "Swarmops.Basic.Types.BasicPayrollItem":
                return(PayrollItem.FromBasic((BasicPayrollItem)basic));

            case "Swarmops.Basic.Types.BasicSalary":
                return(Salary.FromBasic((BasicSalary)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagSet":
                return(FinancialTransactionTagSet.FromBasic((BasicFinancialTransactionTagSet)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagType":
                return(FinancialTransactionTagType.FromBasic((BasicFinancialTransactionTagType)basic));

            // ------------ GOVERNANCE CLASSES ------------

            case "Swarmops.Basic.Types.BasicBallot":
                return(Ballot.FromBasic((BasicBallot)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionCandidate":
                return(MeetingElectionCandidate.FromBasic((BasicInternalPollCandidate)basic));

            case "Swarmops.Basic.Types.BasicMeetingElection":
                return(MeetingElection.FromBasic((BasicInternalPoll)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionVote":
                return(MeetingElectionVote.FromBasic((BasicInternalPollVote)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotion":
                return(Motion.FromBasic((BasicMotion)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotionAmendment":
                return(MotionAmendment.FromBasic((BasicMotionAmendment)basic));


            // ------------ PARLEY/ACTIVISM CLASSES ------------

            case "Swarmops.Basic.Types.BasicExternalActivity":
                return(ExternalActivity.FromBasic((BasicExternalActivity)basic));

            case "Swarmops.Basic.Types.BasicParley":
                return(Parley.FromBasic((BasicParley)basic));

            case "Swarmops.Basic.Types.BasicParleyAttendee":
                return(ParleyAttendee.FromBasic((BasicParleyAttendee)basic));

            case "Swarmops.Basic.Types.BasicParleyOption":
                return(ParleyOption.FromBasic((BasicParleyOption)basic));

            case "Swarmops.Basic.Types.BasicPerson":
                return(Person.FromBasic((BasicPerson)basic));

            // ------------------ FAIL ----------------

            default:
                throw new NotImplementedException("Unimplemented argument type: " + argumentType);
            }
        }
Esempio n. 2
0
    private void LookupReference(string reference)
    {
        OutboundInvoice invoice = null;

        try
        {
            invoice = OutboundInvoice.FromReference(reference);
        }
        catch (Exception)
        {
            this.PanelInvoice.Visible        = false;
            this.LabelReferenceNotFound.Text = "Invoice not found or already paid.";
            return;
        }

        if (!invoice.Open)
        {
            this.PanelInvoice.Visible        = false;
            this.LabelReferenceNotFound.Text = "Invoice not found or already paid.";
            return;
        }

        this.LabelReferenceNotFound.Text = string.Empty;
        this.PanelInvoice.Visible        = true;
        this.LabelInvoiceReference.Text  = invoice.Reference;
        this.LabelAmount.Text            = invoice.Amount.ToString("N2", new CultureInfo("sv-SE")) + " " + invoice.Currency.Code +
                                           " (+5% Credit Card / Paypal surcharge)";
        this.LabelIssuer.Text             = invoice.Organization.Name;
        this.LabelRecipient.Text          = invoice.CustomerName;
        this.LinkInvoiceImage.NavigateUrl = "http://data.piratpartiet.se/Forms/DisplayOutboundInvoice.aspx?Reference=" +
                                            invoice.Reference + "&Culture=" + (invoice.Domestic
                                                ? invoice.Organization.DefaultCountry.Culture.Replace("-", "").ToLower()
                                                : "enus");


        OutboundInvoiceItems items = invoice.Items;

        items.Add(OutboundInvoiceItem.FromBasic(new BasicOutboundInvoiceItem(0, 0, "PayPal/Credit Card surcharge", (Int64)(invoice.AmountCents * 0.05))));
        items.Add(OutboundInvoiceItem.FromBasic(new BasicOutboundInvoiceItem(0, 0, "INVOICE TOTAL", (Int64)(invoice.AmountCents * 1.05))));

        this.RepeaterItems.DataSource = items;
        this.RepeaterItems.DataBind();

        this.LiteralPaypalButton.Text = String.Format(
            "<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">" +
            "<input type=\"hidden\" name=\"business\" value=\"FM8HU676ABYMA\">" +
            "<input type=\"hidden\" name=\"lc\" value=\"{2}\">" +
            "<input type=\"hidden\" name=\"item_name\" value=\"Invoice #{0}\">" +
            "<input type=\"hidden\" name=\"amount\" value=\"{1}\">" +
            "<input type=\"hidden\" name=\"currency_code\" value=\"SEK\">" +
            "<input type=\"hidden\" name=\"button_subtype\" value=\"services\">" +
            "<input type=\"hidden\" name=\"no_note\" value=\"1\">" +
            "<input type=\"hidden\" name=\"no_shipping\" value=\"1\">" +
            "<input type=\"hidden\" name=\"rm\" value=\"1\">" +
            "<input type=\"hidden\" name=\"return\" value=\"https://pirateweb.net/Pages/Public/PayInvoice.aspx\">" +
            "<input type=\"hidden\" name=\"cancel_return\" value=\"https://pirateweb.net/Pages/Public/PayInvoice.aspx\">" +
            "<input type=\"hidden\" name=\"bn\" value=\"PP-BuyNowBF:btn_paynowCC_LG.gif:NonHosted\">" +
            "<input type=\"hidden\" name=\"invoice\" value=\"{0}\">" +

            "<a href=\"javascript:theForm.__VIEWSTATE.value='';theForm.encoding='application/x-www-form-urlencoded';theForm.action='https://www.paypal.com/cgi-bin/webscr';theForm.submit();\"><img src=\"https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif\" border=\"0\"></a>" +  // Asp.Net hack for PayPal


            "<img alt=\"\" border=\"0\" src=\"https://www.paypal.com/en_US/i/scr/pixel.gif\" width=\"1\" height=\"1\">",
            invoice.Reference, (invoice.Amount * 1.05m).ToString("N2", CultureInfo.InvariantCulture), (invoice.Domestic?invoice.Organization.DefaultCountry.Code:"US"));
    }