Beispiel #1
0
 public void ToString_3()
 {
    var amt = new Amount("usd", -122M);
                          
    Console.WriteLine(amt);    
    Assert.AreEqual("-122:usd", amt.ToString());    
 }
 protected RealExTransactionRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, Comments comments)
     : base(secret, merchantId, account, orderId, comments)
 {
     SignatureProperties = () => new[] { Amount.Value.ToString(), Amount.Currency.CurrencyName(), Card.Number };
     Amount = amount;
     Card = card;
 }
        public IngredientAdder AddIngredient(Ingredient ingredient, Amount amount, string prepNote = null)
        {
            var usage = new IngredientUsage(ingredient, null, amount, prepNote);
            var addedIngredient = this.AddIngredientUsage(usage);

            return addedIngredient;
        }
Beispiel #4
0
 public void ToString_1()
 {
    var amt = new Amount("usd", 12.45M);
                          
    Console.WriteLine(amt);    
    Assert.AreEqual("12.45:usd", amt.ToString());    
 }
Beispiel #5
0
        public void TestAmounts()
        {
            var amt1 = new Amount(0.5f, 1f, Units.Teaspoon);
             var amt2 = new Amount(0.75f, Units.Pound);

             //Test equals
             Assert.AreEqual(new Amount(0.5f, 1f, Units.Teaspoon), amt1);
             Assert.AreEqual(new Amount(0.75f, Units.Pound), amt2);

             //Test multiplication
             Assert.AreEqual(new Amount(1f, 2f, Units.Teaspoon), amt1*2);
             Assert.AreEqual(new Amount(1.5f, Units.Pound), amt2*2);

             //Test addition
             Assert.AreEqual(new Amount(2.5f, 3f, Units.Teaspoon), amt1 + 2);
             Assert.AreEqual(new Amount(1f, Units.Pound), amt2 + 0.25f);

             Assert.AreEqual(new Amount(1.5f, 4f, Units.Teaspoon), amt1 + new Amount(1f, 3f, Units.Teaspoon));
             Assert.AreEqual(new Amount(1.5f, 2f, Units.Teaspoon), amt1 + new Amount(1f, Units.Teaspoon));
             Assert.AreEqual(new Amount(1f, Units.Pound), amt2 + new Amount(.25f, Units.Pound));

             //Cross unit addition
             Assert.AreEqual(new Amount(1.5f, 4f, Units.Teaspoon), amt1 + new Amount(.5f, 1f, Units.Tablespoon));
             // Assert.AreEqual(new Amount(3.5f, 4f, Units.Teaspoon), amt1 + new Amount(1f, Units.Tablespoon)); //Adding 3tsp
             Assert.AreEqual(new Amount(1f, Units.Pound), amt2 + new Amount(4f, Units.Ounce));

             //Test division
             Assert.AreEqual(new Amount(.25f, .5f, Units.Teaspoon), amt1/2);
             Assert.AreEqual(new Amount(.25f, Units.Pound), amt2/3);

             //Test subtraction
             Assert.AreEqual(new Amount(.25f, .75f, Units.Teaspoon), amt1 - .25f);
             Assert.AreEqual(new Amount(.25f, Units.Pound), amt2 - 0.50f);
        }
 public RealEx3DVerifyRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, string paRes, Comments comments)
     : base(secret, merchantId, account, orderId, amount, card, comments)
 {
     PaRes = paRes;
     Type = "3ds-verifysig";
     IsSecure = true;
 }
 public IngredientUsage(Ingredient ingredient, IngredientForm form, Amount amount, string prepnote)
 {
     Ingredient = ingredient;
     Form = form;
     Amount = amount;
     PrepNote = prepnote;
 }
Beispiel #8
0
 public Investment(Investor investor, Venture venture, Amount amount)
 {
     this.investor = investor;
     this.venture = venture;
     this.Value = amount;
     this.venture = venture;
 }
 public IngredientUsage(Ingredient ingredient, IngredientForm form, Amount amount, string preparationNote)
 {
     this.Ingredient = ingredient;
     this.Form = form;
     this.Amount = amount;
     this.PreparationNote = preparationNote;
 }
                public UncontrolledOutput(Amount amount, byte[] pkScript) : base(amount)
                {
                    if (pkScript == null)
                        throw new ArgumentNullException(nameof(pkScript));

                    PkScript = OutputScript.ParseScript(pkScript);
                }
Beispiel #11
0
        public static bool RelevantTransaction(WalletTransaction tx, Account account, out Amount debit, out Amount credit)
        {
            if (tx == null)
                throw new ArgumentNullException(nameof(tx));

            debit = 0;
            credit = 0;
            var relevant = false;

            foreach (var input in tx.Inputs)
            {
                if (input.PreviousAccount == account)
                {
                    relevant = true;
                    debit -= input.Amount;
                }
            }
            foreach (var output in tx.Outputs)
            {
                var controlledOutput = output as WalletTransaction.Output.ControlledOutput;
                if (controlledOutput?.Account == account)
                {
                    relevant = true;
                    credit += output.Amount;
                }
            }

            return relevant;
        }
 public ShoppingListItems(Guid id, Guid userid, Amount amt, Guid? ingredientId, Guid? recipeId)
 {
     this.ItemId = id;
     this.UserId = userid;
     this.Amount = amt;
     this.Ingredient = ingredientId.HasValue ? Ingredients.FromId(ingredientId.Value) : null;
     this.Recipe = recipeId.HasValue ? Recipes.FromId(recipeId.Value) : null;
 }
Beispiel #13
0
    /// <summary>
    /// Initializes a new instance of the <see cref="Price"/> class.
    /// </summary>
    /// <param name="amount">The amount.</param>
    /// <param name="baseQuantity">The base quantity.</param>
    public Price([NotNull] Amount amount, decimal baseQuantity)
    {
      Assert.ArgumentNotNull(amount, "amount");

      this.amount = amount;
      this.baseQuantity = baseQuantity;
      this.orderableUnitFactorRate = 1;
    }
Beispiel #14
0
        public CashWithdrawnEvent(Guid id, Balance balance, Amount amount)
        {

            Id = id;
            DateTimeEventOccurred = DateTime.UtcNow;
            Balance = balance;
            Amount = amount;
        }
Beispiel #15
0
 public override ITaxStructured DoCalc(
     TaxSession session,
     IAddress fromAddress, 
     IAddress toAddress, 
     Amount amount, 
     Amount shipping)
 {
   return TaxStructured.NoneInstance;
 }
 public WalletTransaction(Transaction transaction, Sha256Hash hash, Input[] inputs, Output[] outputs, Amount? fee, DateTimeOffset seenTime)
 {
     Hash = hash;
     Inputs = inputs;
     Outputs = outputs;
     Fee = fee;
     Transaction = transaction;
     SeenTime = seenTime;
 }
Beispiel #17
0
        /// <summary>
        /// Constructs an unsigned transaction by referencing previous unspent outputs.
        /// A change output is added when necessary to return extra value back to the wallet.
        /// </summary>
        /// <param name="outputs">Transaction output array without change.</param>
        /// <param name="changeScript">Output script to pay change to.</param>
        /// <param name="fetchInputsAsync">Input selection source.</param>
        /// <returns>Unsigned transaction and total input amount.</returns>
        /// <exception cref="InsufficientFundsException">Input source was unable to provide enough input value.</exception>
        public static async Task<Tuple<Transaction, Amount>> BuildUnsignedTransaction(Transaction.Output[] outputs,
                                                                                      Amount feePerKb,
                                                                                      InputSource fetchInputsAsync,
                                                                                      ChangeSource fetchChangeAsync)
        {
            if (outputs == null)
                throw new ArgumentNullException(nameof(outputs));
            if (fetchInputsAsync == null)
                throw new ArgumentNullException(nameof(fetchInputsAsync));
            if (fetchChangeAsync == null)
                throw new ArgumentNullException(nameof(fetchChangeAsync));

            var targetAmount = outputs.Sum(o => o.Amount);
            var estimatedSize = Transaction.EstimateSerializeSize(1, outputs, true);
            var targetFee = TransactionFees.FeeForSerializeSize(feePerKb, estimatedSize);

            while (true)
            {
                var funding = await fetchInputsAsync(targetAmount + targetFee);
                var inputAmount = funding.Item1;
                var inputs = funding.Item2;
                if (inputAmount < targetAmount + targetFee)
                {
                    throw new InsufficientFundsException();
                }

                var maxSignedSize = Transaction.EstimateSerializeSize(inputs.Length, outputs, true);
                var maxRequiredFee = TransactionFees.FeeForSerializeSize(feePerKb, maxSignedSize);
                var remainingAmount = inputAmount - targetAmount;
                if (remainingAmount < maxRequiredFee)
                {
                    targetFee = maxRequiredFee;
                    continue;
                }

                var unsignedTransaction = new Transaction(Transaction.SupportedVersion, inputs, outputs, 0, 0);
                var changeAmount = inputAmount - targetAmount - maxRequiredFee;
                if (changeAmount != 0 && !TransactionRules.IsDustAmount(changeAmount, Transaction.PayToPubKeyHashPkScriptSize, feePerKb))
                {
                    var changeScript = await fetchChangeAsync();
                    if (changeScript.Script.Length > Transaction.PayToPubKeyHashPkScriptSize)
                    {
                        throw new Exception("Fee estimation requires change scripts no larger than P2PKH output scripts");
                    }
                    var changeOutput = new Transaction.Output(changeAmount, Transaction.Output.LatestPkScriptVersion, changeScript.Script);

                    var outputList = unsignedTransaction.Outputs.ToList();
                    outputList.Add(changeOutput);
                    var outputsWithChange = outputList.ToArray();

                    unsignedTransaction = new Transaction(unsignedTransaction.Version, unsignedTransaction.Inputs, outputsWithChange,
                        unsignedTransaction.LockTime, unsignedTransaction.Expiry);
                }

                return Tuple.Create(unsignedTransaction, inputAmount);
            }
        }
        public static Amount Convert(Amount amount, Units toUnit)
        {
            var ret = new Amount();
            ret.Unit = toUnit;
            ret.SizeLow = amount.SizeLow.HasValue ? (float?)Convert(amount.SizeLow.Value, amount.Unit, toUnit) : null;
            ret.SizeHigh = Convert(amount.SizeHigh, amount.Unit, toUnit);

            return ret;
        }
Beispiel #19
0
 public override ITaxStructured DoCalc(
     TaxSession session,
     IAddress fromAddress, 
     IAddress toAddress, 
     Amount amount, 
     Amount shipping)
 {
   return DoCalc(session as TaxJarSession, fromAddress, toAddress, amount, shipping);
 }
		public void Sum01Test()
		{
			AmountVector v = new AmountVector(4, LengthUnits.Meter);
			v[0] = new Amount(150m, LengthUnits.Meter);
			v[2] = new Amount(0.2m, LengthUnits.KiloMeter);
			v[3] = new Amount(650m, LengthUnits.Meter);

			Assert.AreEqual(new Amount(1m, LengthUnits.KiloMeter), v.Sum);
		}
Beispiel #21
0
 public UnspentOutput(Sha256Hash txHash, uint outputIndex, Amount amount, OutputScript pkScript, DateTimeOffset seenTime, bool isFromCoinbase)
 {
     TransactionHash = txHash;
     OutputIndex = outputIndex;
     Amount = amount;
     PkScript = pkScript;
     SeenTime = seenTime;
     IsFromCoinbase = IsFromCoinbase;
 }
 public RealExAuthRequest(string secret, string merchantId, string account, string orderId, Amount amount, Card card, TssInfo tssInfo, bool autoSettle, string custNum, string prodId, string varRef, Comments comments)
     : base(secret, merchantId, account, orderId, amount, card, comments)
 {
     TssInfo = tssInfo;
     CustNum = custNum;
     ProdId = prodId;
     VarRef = varRef;
     Type = "auth";
     AutoSettle = new AutoSettle(autoSettle);
 }
Beispiel #23
0
 public Expense(Amount amount, DateTime date, string category, string description, string distributionKey = null, string[] tags = null)
 {
     Amount = amount;
     Date = date;
     Category = category;
     Description = description;
     DistributionKey = distributionKey;
     Tags = tags;
    
 }
 public IngredientForm(Guid formId, Guid ingredientId, Units unitType, string displayName, string unitName, int conversionMultiplier, Amount amount)
 {
     this.FormId = formId;
     this.IngredientId = ingredientId;
     this.FormUnitType = unitType;
     this.FormDisplayName = displayName;
     this.FormUnitName = unitName;
     this.ConversionMultiplier = conversionMultiplier;
     this.FormAmount = amount;
 }
Beispiel #25
0
        public static Amount ActualFee(Transaction tx, Amount totalInput)
        {
            if (tx == null)
                throw new ArgumentNullException(nameof(tx));
            if (totalInput < 0)
                throw Errors.RequireNonNegative(nameof(totalInput));

            var totalOutput = tx.Outputs.Sum(o => o.Amount);
            return totalInput - totalOutput;
        }
        public IngredientAggregation(Ingredient ingredient)
        {
            this.Ingredient = ingredient;

             if (ingredient != null)
             {
            this.Amount = new Amount();
            this.Amount.Unit = Unit.GetDefaultUnitType(ingredient.ConversionType);
             }
        }
Beispiel #27
0
 public IngredientForm(Guid formid, Guid ingredientid, Units unittype, string displayname, string unitname, int convmultiplier, Amount amount)
 {
     FormId = formid;
      IngredientId = ingredientid;
      FormUnitType = unittype;
      FormDisplayName = displayname;
      FormUnitName = unitname;
      ConversionMultiplier = convmultiplier;
      FormAmount = amount;
 }
        public void AdditionDerivedTest()
        {
            Amount a = new Amount(3000m, LengthUnits.Meter);
            Amount sum = new Amount(2m, LengthUnits.KiloMeter);
            Amount expected = new Amount(5m, LengthUnits.KiloMeter);

            sum += a;

            Console.WriteLine("Sum = {0}", sum);
            Assert.AreEqual(expected, sum);
        }
Beispiel #29
0
		/// <summary>
		/// Creates an AmountVector with given length and of given unit,
		/// where all values are zero.
		/// </summary>
		public static AmountVector AllZeros(int length, Unit unit)
		{
			AmountVector v = new AmountVector(length, unit);
			Amount zero = new Amount(0m, unit);
			for (int i = 0; i < length; i++)
			{
				v.values[i] = 0m;
				v.amounts[i] = zero;
			}
			return v;
		}
Beispiel #30
0
        public static Amount EstimatedFeePerKb(Transaction tx, Amount totalInput)
        {
            if (tx == null)
                throw new ArgumentNullException(nameof(tx));
            if (totalInput < 0)
                throw Errors.RequireNonNegative(nameof(totalInput));

            var estimatedSize = Transaction.EstimateSerializeSize(tx.Inputs.Length, tx.Outputs, false);
            var actualFee = ActualFee(tx, totalInput);
            return actualFee * 1000 / estimatedSize;
        }
Beispiel #31
0
        public static Payment CreatePaypalPaymentStatic()
        {
            var apiContext = Configuration.GetAPIContext();



            // ###Items
            // Items within a transaction.
            var itemList = new ItemList()
            {
                items = new List <Item>()
                {
                    new Item()
                    {
                        name     = "Item Name",
                        currency = "USD",
                        price    = "15",
                        quantity = "5",
                        sku      = "sku"
                    }
                }
            };

            // ###Payer
            // A resource representing a Payer that funds a payment
            // Payment Method
            // as `paypal`
            var payer = new Payer()
            {
                payment_method = "paypal"
            };

            // ###Redirect URLS
            // These URLs will determine how the user is redirected from PayPal once they have either approved or canceled the payment.
            // var baseURI = Request.Url + "://" + Request.Url.Authority + "/PaymentWithPayPal.aspx?";
            var baseURI     = HttpContext.Current.Request.Url + "?";
            var guid        = Convert.ToString((new Random()).Next(100000));
            var redirectUrl = baseURI + "guid=" + guid;
            var redirUrls   = new RedirectUrls()
            {
                cancel_url = redirectUrl + "&cancel=true",
                return_url = redirectUrl
            };

            // ###Details
            // Let's you specify details of a payment amount.
            var details = new Details()
            {
                tax      = "15",
                shipping = "10",
                subtotal = "75"
            };

            // ###Amount
            // Let's you specify a payment amount.
            var amount = new Amount()
            {
                currency = "USD",
                total    = "100.00", // Total must be equal to sum of shipping, tax and subtotal.
                details  = details
            };

            // ###Transaction
            // A transaction defines the contract of a
            // payment - what is the payment for and who
            // is fulfilling it.
            var transactionList = new List <Transaction>();

            // The Payment creation API requires a list of
            // Transaction; add the created `Transaction`
            // to a List
            transactionList.Add(new Transaction()
            {
                description    = "Transaction description.",
                invoice_number = "123456",
                amount         = amount,
                item_list      = itemList
            });

            // ###Payment
            // A Payment Resource; create one using
            // the above types and intent as `sale` or `authorize`
            var payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };


            // Create a payment using a valid APIContext
            var createdPayment = payment.Create(apiContext);

            //Session.Add(guid, createdPayment.id);
            //Session.Add("flow-" + guid, this.flow);


            return(createdPayment);
        }
Beispiel #32
0
        public Payment CreatePayment(APIContext apiContext, string redirectUrl)
        {
            //create itemlist and add item objects to it
            var itemList = new ItemList()
            {
                items = new List <Item>()
            };
            string price = "";
            string quan  = "";
            float  total = 0;
            Setup  setup = db.setup.First();
            string name  = "Token purchase - ";
            int    id    = (int)Session["tokenID"];

            if (id == 1)
            {
                name += "Silver Package";
                price = setup.PriceSilver.ToString();
                quan  = setup.AmountSilver.ToString();
                total = (setup.PriceSilver * setup.AmountSilver);
            }
            if (id == 2)
            {
                name += "Gold Package";
                price = setup.PriceGold.ToString();
                quan  = setup.AmountGold.ToString();
                total = (setup.PriceGold * setup.AmountGold);
            }
            if (id == 3)
            {
                name += "Platinum Package";
                price = setup.PricePlat.ToString();
                quan  = setup.AmountPlat.ToString();
                total = (setup.PricePlat * setup.AmountPlat);
            }
            //Adding Item Details like name, currency, price etc
            itemList.items.Add(new Item()
            {
                name     = name,
                currency = "USD",
                price    = price,
                quantity = quan,
                sku      = "sku"
            });

            var payer = new Payer()
            {
                payment_method = "paypal"
            };

            // Configure Redirect Urls here with RedirectUrls object
            var redirUrls = new RedirectUrls()
            {
                cancel_url = redirectUrl + "&Cancel=true",
                return_url = redirectUrl
            };

            // Adding Tax, shipping and Subtotal details
            var details = new Details()
            {
                tax               = "0",
                shipping          = "0",
                subtotal          = total.ToString(),
                shipping_discount = "0"
            };

            //Final amount with details
            var amount = new Amount()
            {
                currency = "USD",
                total    = total.ToString(), // Total must be equal to sum of tax, shipping and subtotal.
                details  = details
            };

            var transactionList = new List <Transaction>();

            // Adding description about the transaction
            transactionList.Add(new Transaction()
            {
                description    = "Transaction description",
                invoice_number = Convert.ToString((new Random()).Next(100000)),
                amount         = amount,
                item_list      = itemList
            });


            this.payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };

            // Create a payment using a APIContext
            return(this.payment.Create(apiContext));
        }
Beispiel #33
0
 public void Display()
 {
     Console.WriteLine("\nName: " + Name);
     Console.WriteLine("Amount: " + Amount.ToString());
     Console.WriteLine("Price: $" + Price.ToString());
 }
Beispiel #34
0
 public override void OnSingleClick(Mobile from)
 {
     LabelTo(from, string.Format("{0} {1} ingot{2}", Amount > 1 ? Amount.ToString() : "", CraftResources.GetName(m_Resource).ToLower(), Amount > 1 ? "s" : ""));
 }
Beispiel #35
0
 public string ToString(string format, IFormatProvider provider)
 {
     return(Amount.ToString(format, provider));
 }
Beispiel #36
0
        /// <summary>
        /// Method that will be called on an entity immediately before the item is saved by context
        /// </summary>
        /// <param name="dbContext"></param>
        /// <param name="entry"></param>
        public override void PreSaveChanges(Rock.Data.DbContext dbContext, System.Data.Entity.Infrastructure.DbEntityEntry entry)
        {
            var rockContext = ( RockContext )dbContext;

            HistoryChangeList = new History.HistoryChangeList();

            switch (entry.State)
            {
            case System.Data.Entity.EntityState.Added:
            {
                string acct = History.GetValue <FinancialAccount>(this.Account, this.AccountId, rockContext);
                HistoryChangeList.AddChange(History.HistoryVerb.Add, History.HistoryChangeType.Record, acct).SetNewValue(Amount.FormatAsCurrency());
                break;
            }

            case System.Data.Entity.EntityState.Modified:
            {
                string acct = History.GetValue <FinancialAccount>(this.Account, this.AccountId, rockContext);

                int?accountId     = this.Account != null ? this.Account.Id : this.AccountId;
                int?origAccountId = entry.OriginalValues["AccountId"].ToStringSafe().AsIntegerOrNull();
                if (!accountId.Equals(origAccountId))
                {
                    History.EvaluateChange(HistoryChangeList, "Account", History.GetValue <FinancialAccount>(null, origAccountId, rockContext), acct);
                }

                History.EvaluateChange(HistoryChangeList, acct, entry.OriginalValues["Amount"].ToStringSafe().AsDecimal().FormatAsCurrency(), Amount.FormatAsCurrency());

                break;
            }

            case System.Data.Entity.EntityState.Deleted:
            {
                string acct = History.GetValue <FinancialAccount>(this.Account, this.AccountId, rockContext);
                HistoryChangeList.AddChange(History.HistoryVerb.Delete, History.HistoryChangeType.Record, acct).SetOldValue(Amount.FormatAsCurrency());
                break;
            }
            }

            base.PreSaveChanges(dbContext, entry);
        }
        //  Handle Payment below:


        public ActionResult PaymentWithCreditCard(Order order)
        {
            CloseOrder(order);

            //create and item for which you are taking payment
            //if you need to add more items in the list
            //Then you will need to create multiple item objects or use some loop to instantiate object
            Item item = new Item();

            item.name = "Demo Item";
            //item.currency = "USD";
            item.price    = "5";
            item.quantity = "1";
            item.sku      = "sku";

            //Now make a List of Item and add the above item to it
            //you can create as many items as you want and add to this list
            List <Item> itms = new List <Item>();

            itms.Add(item);
            ItemList itemList = new ItemList();

            itemList.items = itms;

            //Address for the payment
            Address billingAddress = new Address();

            billingAddress.city         = "NewYork";
            billingAddress.country_code = "US";
            billingAddress.line1        = "23rd street kew gardens";
            billingAddress.postal_code  = "43210";
            billingAddress.state        = "NY";


            //Now Create an object of credit card and add above details to it
            CreditCard crdtCard = new CreditCard();

            crdtCard.billing_address = billingAddress;
            crdtCard.cvv2            = "874";
            crdtCard.expire_month    = 1;
            crdtCard.expire_year     = 2020;
            crdtCard.first_name      = "Aman";
            crdtCard.last_name       = "Thakur";
            crdtCard.number          = "1234567890123456";
            crdtCard.type            = "discover";

            // Specify details of your payment amount.
            Details details = new Details();

            details.shipping = "1";
            details.subtotal = "5";
            details.tax      = "1";

            // Specify your total payment amount and assign the details object
            Amount amnt = new Amount();

            amnt.currency = "USD";
            // Total = shipping tax + subtotal.
            amnt.total   = "7";
            amnt.details = details;

            // Now make a trasaction object and assign the Amount object
            Transaction tran = new Transaction();

            tran.amount         = amnt;
            tran.description    = "Description about the payment amount.";
            tran.item_list      = itemList;
            tran.invoice_number = "your invoice number which you are generating";

            // Now, we have to make a list of trasaction and add the trasactions object
            // to this list. You can create one or more object as per your requirements

            List <Transaction> transactions = new List <Transaction>();

            transactions.Add(tran);

            // Now we need to specify the FundingInstrument of the Payer
            // for credit card payments, set the CreditCard which we made above

            FundingInstrument fundInstrument = new FundingInstrument();

            fundInstrument.credit_card = crdtCard;

            // The Payment creation API requires a list of FundingIntrument

            List <FundingInstrument> fundingInstrumentList = new List <FundingInstrument>();

            fundingInstrumentList.Add(fundInstrument);

            // Now create Payer object and assign the fundinginstrument list to the object
            Payer payr = new Payer();

            payr.funding_instruments = fundingInstrumentList;
            payr.payment_method      = "credit_card";

            // finally create the payment object and assign the payer object & transaction list to it
            Payment pymnt = new Payment();

            pymnt.intent       = "sale";
            pymnt.payer        = payr;
            pymnt.transactions = transactions;

            try
            {
                //getting context from the paypal, basically we are sending the clientID and clientSecret key in this function
                //to the get the context from the paypal API to make the payment for which we have created the object above.

                //Code for the configuration class is provided next

                // Basically, apiContext has a accesstoken which is sent by the paypal to authenticate the payment to facilitator account. An access token could be an alphanumeric string

                APIContext apiContext = PaypalConfiguration.GetAPIContext();

                // Create is a Payment class function which actually sends the payment details to the paypal API for the payment. The function is passed with the ApiContext which we received above.

                Payment createdPayment = pymnt.Create(apiContext);

                //if the createdPayment.State is "approved" it means the payment was successfull else not

                if (createdPayment.state.ToLower() != "approved")
                {
                    return(View("FailureView"));
                }
            }
            catch (PayPal.PayPalException ex)
            {
                PaypalLogger.Log("Error: " + ex.Message);
                return(View("FailureView"));
            }

            return(View("SuccessView"));
        }
        public void CreateComplexInvoiceReservationRequest()
        {
            InvoiceReservationRequest request = new InvoiceReservationRequest()
            {
                Terminal    = terminal,
                ShopOrderId = "invoice-" + Guid.NewGuid().ToString(),
                Amount      = Amount.Get(42.42, Currency.DKK),

                // Payment Infos
                PaymentInfos = new Dictionary <string, object>()
                {
                    { "auxinfo1", "auxvalue1" },
                },

                AuthType               = AuthType.payment,
                AccountNumber          = "111",
                BankCode               = "222",
                FraudService           = FraudService.Red,
                PaymentSource          = PaymentSource.eCommerce,
                OrganisationNumber     = "333",
                PersonalIdentifyNumber = "444",
                BirthDate              = "555",

                // Orderlines
                OrderLines =
                {
                    new PaymentOrderLine()
                    {
                        Description = "The Item Desc",
                        ItemId      = "itemId1",
                        Quantity    = 10,
                        TaxPercent  = 10,
                        UnitCode    = "unitCode",
                        UnitPrice   = 500,
                        Discount    = 0.00,
                        GoodsType   = GoodsType.Item,
                    },
                },

                // Customer Data
                CustomerInfo =
                {
                    Email         = "*****@*****.**",
                    Username      = "******",
                    CustomerPhone = "+4512345678",
                    BankName      = "Gotham Bank",
                    BankPhone     = "666 666 666",

                    BillingAddress  = new CustomerAddress()
                    {
                        Address    = "101 Night Street",
                        City       = "Gotham City",
                        Country    = "DK",
                        Firstname  = "Bruce",
                        Lastname   = "Wayne",
                        Region     = "Dark Region",
                        PostalCode = "001"
                    },

                    ShippingAddress = new CustomerAddress()
                    {
                        Address    = "42 Joker Avenue",
                        City       = "Big Smile City",
                        Country    = "BR",
                        Firstname  = "Jack",
                        Lastname   = "Napier",
                        Region     = "Umbrella Neighbourhood",
                        PostalCode = "002"
                    }
                },
            };

            // And make the actual invocation.
            InvoiceReservationResult result = _api.CreateInvoiceReservation(request);

            Assert.AreEqual(null, result.ResultMerchantMessage);
            Assert.AreEqual(null, result.ResultMessage);
            Assert.AreEqual(Result.Success, result.Result);

            Assert.AreEqual(request.Terminal, result.Payment.Terminal);
            Assert.AreEqual(request.ShopOrderId, result.Payment.ShopOrderId);

            Assert.AreEqual(request.AuthType.ToString(), result.Payment.AuthType);

            Assert.AreEqual("auxinfo1", result.Payment.PaymentInfos[0].name);
            Assert.AreEqual(request.PaymentInfos["auxinfo1"], result.Payment.PaymentInfos[0].Value);

            AltaPay.Service.Dto.CustomerInfo ci = result.Payment.CustomerInfo;

            Assert.AreEqual(request.CustomerInfo.Email, ci.Email);
            Assert.AreEqual(request.CustomerInfo.Username, ci.Username);
            Assert.AreEqual(request.CustomerInfo.CustomerPhone, ci.CustomerPhone);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.Firstname, ci.BillingAddress.Firstname);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.Lastname, ci.BillingAddress.Lastname);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.Address, ci.BillingAddress.Address);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.City, ci.BillingAddress.City);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.Region, ci.BillingAddress.Region);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.PostalCode, ci.BillingAddress.PostalCode);
            Assert.AreEqual(request.CustomerInfo.BillingAddress.Country, ci.BillingAddress.Country);

            Assert.AreEqual(request.CustomerInfo.ShippingAddress.Firstname, ci.ShippingAddress.Firstname);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.Lastname, ci.ShippingAddress.Lastname);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.Address, ci.ShippingAddress.Address);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.City, ci.ShippingAddress.City);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.Region, ci.ShippingAddress.Region);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.PostalCode, ci.ShippingAddress.PostalCode);
            Assert.AreEqual(request.CustomerInfo.ShippingAddress.Country, ci.ShippingAddress.Country);

            // System.Diagnostics.Process.Start(result.Url);
        }
 public Debit(Guid transactionId, Guid accountId, Amount amount, DateTime transactionDate)
     : base(accountId, amount, transactionDate)
 {
     Id = transactionId;
 }
Beispiel #40
0
 public MilkDecorator(IDrink drink, Amount milkAmount, double price) : base(drink)
 {
     _price     = price;
     MilkAmount = milkAmount;
 }
        protected void btnPurchase_Click(object sender, EventArgs e)
        {
            var    prodPrice = ProductFormView.FindControl("ProductPriceLabel") as Label;
            var    priceItem = prodPrice.Text;
            var    prodName  = ProductFormView.FindControl("ProductNameLabel") as Label;
            string nameItem  = prodName.Text;
            var    sizeFc    = ProductFormView.FindControl("ProductTypeLabel") as Label;
            string labelItem = sizeFc.Text;

            decimal postagePackagingCost = 3.99m;
            decimal productPrice         = decimal.Parse(priceItem);
            int     quantityOfProduct    = int.Parse(DDLQuantity.SelectedValue);
            decimal subTotal             = (quantityOfProduct * productPrice);
            decimal total = subTotal + postagePackagingCost;

            var config      = ConfigManager.Instance.GetProperties();
            var accessToken = new OAuthTokenCredential(config).GetAccessToken();
            var apiContext  = new APIContext(accessToken);


            var productItem = new Item();

            productItem.name     = nameItem;
            productItem.currency = "GBP";
            productItem.price    = productPrice.ToString();
            productItem.sku      = "FipPro";
            productItem.quantity = quantityOfProduct.ToString();

            var transactionDetails = new Details();

            transactionDetails.tax      = "0";
            transactionDetails.shipping = postagePackagingCost.ToString();
            transactionDetails.subtotal = subTotal.ToString("0.00");

            var transactionAmount = new Amount();

            transactionAmount.currency = "GBP";
            transactionAmount.total    = total.ToString("0.00");
            transactionAmount.details  = transactionDetails;

            var transaction = new Transaction();

            transaction.description    = "Products you have ordered!";
            transaction.invoice_number = Guid.NewGuid().ToString();
            transaction.amount         = transactionAmount;
            transaction.item_list      = new ItemList
            {
                items = new List <Item> {
                    productItem
                }
            };

            var payer = new Payer();

            payer.payment_method = "paypal";

            var redirectUrls = new RedirectUrls();

            redirectUrls.cancel_url = "http://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath + "/Default.aspx";
            redirectUrls.return_url = "http://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath + "/user/CompletePurchase.aspx";

            var payment = Payment.Create(apiContext, new Payment
            {
                intent       = "sale",
                payer        = payer,
                transactions = new List <Transaction> {
                    transaction
                },
                redirect_urls = redirectUrls
            });

            Session["paymentId"] = payment.id;

            foreach (var link in payment.links)
            {
                if (link.rel.ToLower().Trim().Equals("approval_url"))
                {
                    Response.Redirect(link.href);
                }
            }
        }
Beispiel #42
0
 public PricePoint(DateTime when, Amount price) : this()
 {
     When  = when;
     Price = price;
 }
Beispiel #43
0
        private static ReadOnlyCollection <DataEntity> CreateDataEntities()
        {
            DateTime today        = DateTime.Today;
            DateTime todayPlus3M  = today.AddMonths(3);
            DateTime todayPlus4Y  = today.AddYears(4);
            DateTime todayPlus10Y = today.AddYears(10);

            Int32 tradeId = 0;

            RegulationsInfo ri = RegulationsInfo.Of(Regulation.Cftc);

            List <DataEntity> dataEntities = new List <DataEntity>
            {
                // Model - Sensitivities - Base Correlation
                Sensitivity.BaseCorrelation("CDX HY", Amount.Of(Currency.Usd, 200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.BaseCorrelation("CDX HY", Amount.Of(Currency.Usd, -300000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.BaseCorrelation("CDX IG", Amount.Of(Currency.Usd, 100000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.BaseCorrelation("iTraxx XO", Amount.Of(Currency.Usd, 450000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Commodity
                Sensitivity.CommodityDelta("Coal Americas", BucketCommodity.Bucket1, Amount.Of(Currency.Usd, 3000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Coal Europe", BucketCommodity.Bucket1, Amount.Of(Currency.Usd, -5000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Middle Distillates America", BucketCommodity.Bucket3, Amount.Of(Currency.Usd, 15000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Middle Distillates Europe", BucketCommodity.Bucket3, Amount.Of(Currency.Usd, -20000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Middle Distillates Asia", BucketCommodity.Bucket3, Amount.Of(Currency.Usd, 32000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("NA Natural Gas Gulf Coast", BucketCommodity.Bucket6, Amount.Of(Currency.Usd, 6500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("NA Natural Gas West", BucketCommodity.Bucket6, Amount.Of(Currency.Usd, 4000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Freight Wet", BucketCommodity.Bucket10, Amount.Of(Currency.Usd, 35000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Freight Dry", BucketCommodity.Bucket10, Amount.Of(Currency.Usd, -10000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Softs Coffee", BucketCommodity.Bucket14, Amount.Of(Currency.Usd, 2500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityDelta("Livestock Feeder Cattle", BucketCommodity.Bucket15, Amount.Of(Currency.Usd, -1200000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Credit Qualifying
                Sensitivity.CreditQualifyingDelta("ISIN:US3949181045", BucketCreditQualifying.Bucket1, Tenor.Y2, false, Amount.Of(Currency.Usd, 100000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:US3949181045", BucketCreditQualifying.Bucket1, Tenor.Y5, false, Amount.Of(Currency.Usd, -1500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:US3949181045", BucketCreditQualifying.Bucket1, Tenor.Y3, false, Amount.Of(Currency.Usd, 1450000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:XS1061333921", BucketCreditQualifying.Bucket1, Tenor.Y10, false, Amount.Of(Currency.Usd, 400000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:CH0419041295", BucketCreditQualifying.Bucket4, Tenor.Y1, true, Amount.Of(Currency.Usd, -650000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:JP1718441K71", BucketCreditQualifying.Bucket4, Tenor.Y1, false, Amount.Of(Currency.Usd, 200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:RU000A100H37", BucketCreditQualifying.Bucket7, Tenor.Y2, false, Amount.Of(Currency.Usd, -100000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:RU000A100H37", BucketCreditQualifying.Bucket7, Tenor.Y3, false, Amount.Of(Currency.Usd, 150000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:XS1886258598", BucketCreditQualifying.Bucket7, Tenor.Y1, false, Amount.Of(Currency.Usd, -120000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:XS1120672716", BucketCreditQualifying.Bucket7, Tenor.Y2, false, Amount.Of(Currency.Usd, 330000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:GB0702134646", BucketCreditQualifying.Bucket11, Tenor.Y2, false, Amount.Of(Currency.Usd, 1000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:GB0702134646", BucketCreditQualifying.Bucket11, Tenor.Y10, false, Amount.Of(Currency.Usd, -475000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:GB0702134646", BucketCreditQualifying.Bucket11, Tenor.Y3, false, Amount.Of(Currency.Usd, -500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:FR0003504418", BucketCreditQualifying.BucketResidual, Tenor.Y2, false, Amount.Of(Currency.Usd, 400000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingDelta("ISIN:XS2023221601", BucketCreditQualifying.BucketResidual, Tenor.Y10, false, Amount.Of(Currency.Usd, -300000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Credit Non-qualifying
                Sensitivity.CreditNonQualifyingDelta("ISIN:US3949181045", BucketCreditNonQualifying.Bucket1, Tenor.Y3, Amount.Of(Currency.Usd, 300000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:US3949181045", BucketCreditNonQualifying.Bucket1, Tenor.Y5, Amount.Of(Currency.Usd, 700000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:XS1061333921", BucketCreditNonQualifying.Bucket1, Tenor.Y2, Amount.Of(Currency.Usd, -500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:XS1980681200", BucketCreditNonQualifying.Bucket2, Tenor.Y1, Amount.Of(Currency.Usd, -220000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:XS1980681200", BucketCreditNonQualifying.Bucket2, Tenor.Y10, Amount.Of(Currency.Usd, 200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:DE000HVB34J9", BucketCreditNonQualifying.Bucket2, Tenor.Y2, Amount.Of(Currency.Usd, 800000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:FR0003507418", BucketCreditNonQualifying.BucketResidual, Tenor.Y5, Amount.Of(Currency.Usd, 300000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingDelta("ISIN:XS2023221601", BucketCreditNonQualifying.BucketResidual, Tenor.Y3, Amount.Of(Currency.Usd, -270000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Equity
                Sensitivity.EquityDelta("ISIN:XS1980681200", BucketEquity.Bucket2, Amount.Of(Currency.Usd, 200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:DE000HVB34J9", BucketEquity.Bucket2, Amount.Of(Currency.Usd, 500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:DE000TK0T291", BucketEquity.Bucket5, Amount.Of(Currency.Usd, -1000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:DE000FF2AKA7", BucketEquity.Bucket5, Amount.Of(Currency.Usd, 3300000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:XS1896686544", BucketEquity.Bucket5, Amount.Of(Currency.Usd, 500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:BE5631439402", BucketEquity.Bucket9, Amount.Of(Currency.Usd, 100000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:XS1006556794", BucketEquity.Bucket10, Amount.Of(Currency.Usd, 50000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:GB02BALKJB79", BucketEquity.Bucket10, Amount.Of(Currency.Usd, -150000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("FTSE100", BucketEquity.Bucket11, Amount.Of(Currency.Usd, 600000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("S&P500", BucketEquity.Bucket11, Amount.Of(Currency.Usd, -450000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:FR0003504418", BucketEquity.BucketResidual, Amount.Of(Currency.Usd, -75000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityDelta("ISIN:XS2023221601", BucketEquity.BucketResidual, Amount.Of(Currency.Usd, 56000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - FX
                Sensitivity.FxDelta(Currency.Eur, Amount.Of(Currency.Usd, 10000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxDelta(Currency.Eur, Amount.Of(Currency.Usd, -10000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxDelta(Currency.Nok, Amount.Of(Currency.Usd, 200000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxDelta(Currency.Mru, Amount.Of(Currency.Usd, 60000000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Rates - Cross-currency Basis
                Sensitivity.CrossCurrencyBasis(Currency.Gbp, Amount.Of(Currency.Usd, -15000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CrossCurrencyBasis(Currency.Usd, Amount.Of(Currency.Usd, 10000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CrossCurrencyBasis(Currency.Usd, Amount.Of(Currency.Usd, 10000000m), ri, CreateTradeInfoModel(++tradeId)),

                // Sensitivities - Delta - Rates - Inflation
                Sensitivity.InflationDelta(Currency.Cad, Amount.Of(Currency.Usd, 3000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InflationDelta(Currency.Gbp, Amount.Of(Currency.Usd, -10000000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Delta - Rates - Interest Rate
                Sensitivity.InterestRateDelta(Currency.Gbp, Tenor.Y5, Curve.Libor6M, Amount.Of(Currency.Usd, -5000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateDelta(Currency.Gbp, Tenor.M6, Curve.Ois, Amount.Of(Currency.Usd, 20000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateDelta(Currency.Gbp, Tenor.Y2, Curve.Ois, Amount.Of(Currency.Usd, 30000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateDelta(Currency.Jpy, Tenor.Y10, Curve.Libor3M, Amount.Of(Currency.Usd, 9000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateDelta(Currency.Jpy, Tenor.Y20, Curve.Libor3M, Amount.Of(Currency.Usd, 1000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateDelta(Currency.Inr, Tenor.W2, Curve.Ois, Amount.Of(Currency.Usd, -2000000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - Commodity
                Sensitivity.CommodityVega("Precious Metals Silver", BucketCommodity.Bucket12, Tenor.W2, Amount.Of(Currency.Usd, 3500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityVega("Precious Metals Silver", BucketCommodity.Bucket12, Tenor.Y5, Amount.Of(Currency.Usd, -3200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityVega("Precious Metals Gold", BucketCommodity.Bucket12, Tenor.M6, Amount.Of(Currency.Usd, 1500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityVega("EU Power Germany", BucketCommodity.Bucket9, Tenor.Y1, Amount.Of(Currency.Usd, 1000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityVega("EU Power Germany", BucketCommodity.Bucket9, Tenor.W2, Amount.Of(Currency.Usd, 4500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CommodityVega("Crude Oil Americas", BucketCommodity.Bucket2, Tenor.Y15, Amount.Of(Currency.Usd, -1500000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - Credit Qualifying
                Sensitivity.CreditQualifyingVega("EU.HY", BucketCreditQualifying.BucketResidual, Tenor.Y5, Amount.Of(Currency.Usd, -4000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingVega("EU.IG", BucketCreditQualifying.BucketResidual, Tenor.Y1, Amount.Of(Currency.Usd, 1500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingVega("EU.IG", BucketCreditQualifying.Bucket2, Tenor.Y2, Amount.Of(Currency.Usd, 3000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingVega("EU.IG", BucketCreditQualifying.Bucket2, Tenor.Y2, Amount.Of(Currency.Usd, -2000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditQualifyingVega("US.HY", BucketCreditQualifying.Bucket7, Tenor.Y10, Amount.Of(Currency.Usd, 3500000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - Credit Non-qualifying
                Sensitivity.CreditNonQualifyingVega("EU.HY", BucketCreditNonQualifying.BucketResidual, Tenor.Y3, Amount.Of(Currency.Usd, 1200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingVega("EU.IG", BucketCreditNonQualifying.Bucket1, Tenor.Y2, Amount.Of(Currency.Usd, -2300000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingVega("EU.IG", BucketCreditNonQualifying.BucketResidual, Tenor.Y3, Amount.Of(Currency.Usd, 4000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingVega("EU.IG", BucketCreditNonQualifying.BucketResidual, Tenor.Y1, Amount.Of(Currency.Usd, -3500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.CreditNonQualifyingVega("US.HY", BucketCreditNonQualifying.BucketResidual, Tenor.Y10, Amount.Of(Currency.Usd, -2600000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - Equity
                Sensitivity.EquityVega("ISIN:US3949181045", BucketEquity.Bucket1, Tenor.Y5, Amount.Of(Currency.Usd, 2000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:US3949181045", BucketEquity.Bucket1, Tenor.Y2, Amount.Of(Currency.Usd, -1800000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:US3949181045", BucketEquity.Bucket1, Tenor.W2, Amount.Of(Currency.Usd, 6000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:CH0419041295", BucketEquity.Bucket4, Tenor.Y3, Amount.Of(Currency.Usd, 5000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:DE000HVB34J9", BucketEquity.Bucket4, Tenor.Y10, Amount.Of(Currency.Usd, -4500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:RU000A100H37", BucketEquity.Bucket7, Tenor.Y20, Amount.Of(Currency.Usd, -2700000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("VIX", BucketEquity.Bucket12, Tenor.Y15, Amount.Of(Currency.Usd, -1500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:FR0003504418", BucketEquity.BucketResidual, Tenor.M6, Amount.Of(Currency.Usd, 3000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:FR0003504418", BucketEquity.BucketResidual, Tenor.M1, Amount.Of(Currency.Usd, -3200000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.EquityVega("ISIN:XS2023221601", BucketEquity.BucketResidual, Tenor.M3, Amount.Of(Currency.Usd, 4400000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - FX
                Sensitivity.FxVega(CurrencyPair.Of(Currency.Usd, Currency.Eur), Tenor.M6, Amount.Of(Currency.Usd, 2500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxVega(CurrencyPair.Of(Currency.Eur, Currency.Usd), Tenor.Y3, Amount.Of(Currency.Usd, 8500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxVega(CurrencyPair.Of(Currency.Usd, Currency.Eur), Tenor.Y20, Amount.Of(Currency.Usd, -10000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxVega(CurrencyPair.Of(Currency.Brl, Currency.Cny), Tenor.Y2, Amount.Of(Currency.Usd, 6500000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.FxVega(CurrencyPair.Of(Currency.Jpy, Currency.Sgd), Tenor.M6, Amount.Of(Currency.Usd, -2500000m), ri, CreateTradeInfoModel(++tradeId)),

                // Sensitivities - Delta - Vega - Inflation
                Sensitivity.InflationVega(Currency.Eur, Tenor.Y5, Amount.Of(Currency.Usd, 15000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InflationVega(Currency.Eur, Tenor.Y15, Amount.Of(Currency.Usd, -50000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InflationVega(Currency.Usd, Tenor.Y20, Amount.Of(Currency.Usd, 100000000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Sensitivities - Vega - Rates - Interest Rate
                Sensitivity.InterestRateVega(Currency.Usd, Tenor.M3, Amount.Of(Currency.Usd, 20000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateVega(Currency.Usd, Tenor.Y1, Amount.Of(Currency.Usd, -30000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateVega(Currency.Aud, Tenor.W2, Amount.Of(Currency.Usd, -13000000m), ri, CreateTradeInfoModel(++tradeId)),
                Sensitivity.InterestRateVega(Currency.Aud, Tenor.Y2, Amount.Of(Currency.Usd, -2500000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Add-on - Fixed Amounts
                AddOnFixedAmount.Of(Amount.Of(Currency.Usd, 1650000m), ri),
                AddOnFixedAmount.Of(Amount.Of(Currency.Usd, 2000000m), ri),

                // Model - Add-on - Notionals
                AddOnNotional.Of("FlexiCallOption", Amount.Of(Currency.Usd, 1000000m), ri, CreateTradeInfoModel(++tradeId)),
                AddOnNotional.Of("FlexiCallOption", Amount.Of(Currency.Usd, -2000000m), ri, CreateTradeInfoModel(++tradeId)),
                AddOnNotional.Of("FlexiCallOption", Amount.Of(Currency.Usd, 1500000m), ri, CreateTradeInfoModel(++tradeId)),
                AddOnNotional.Of("FlexiPutOption", Amount.Of(Currency.Usd, -800000m), ri, CreateTradeInfoModel(++tradeId)),
                AddOnNotional.Of("FlexiPutOption", Amount.Of(Currency.Usd, -2200000m), ri, CreateTradeInfoModel(++tradeId)),

                // Model - Add-on - Notional Factors
                AddOnNotionalFactor.Of("FlexiCallOption", 0.06105m, ri),
                AddOnNotionalFactor.Of("FlexiPutOption", 0.02055m, ri),

                // Model - Add-on - Product Multipliers
                AddOnProductMultiplier.Of(Model.Product.Commodity, 0.075m, ri),
                AddOnProductMultiplier.Of(Model.Product.Credit, 0.11m, ri),
                AddOnProductMultiplier.Of(Model.Product.Equity, 0.015m, ri),
                AddOnProductMultiplier.Of(Model.Product.RatesFx, 0.205m, ri),

                // Schedule - Notionals
                Notional.Of(Schedule.Product.Commodity, Amount.Of(Currency.Cad, 1850000m), ri, CreateTradeInfoSchedule(1, todayPlus3M)),
                Notional.Of(Schedule.Product.Credit, Amount.Of(Currency.Usd, 2300000m), ri, CreateTradeInfoSchedule(2, todayPlus3M)),
                Notional.Of(Schedule.Product.Credit, Amount.Of(Currency.Usd, -900000m), ri, CreateTradeInfoSchedule(3, todayPlus10Y)),
                Notional.Of(Schedule.Product.Fx, Amount.Of(Currency.Usd, -5200000m), ri, CreateTradeInfoSchedule(4, todayPlus3M)),
                Notional.Of(Schedule.Product.Equity, Amount.Of(Currency.Usd, 1200000m), ri, CreateTradeInfoSchedule(5, todayPlus4Y)),
                Notional.Of(Schedule.Product.Rates, Amount.Of(Currency.Usd, 3700000m), ri, CreateTradeInfoSchedule(6, todayPlus3M)),
                Notional.Of(Schedule.Product.Rates, Amount.Of(Currency.Usd, -2000000m), ri, CreateTradeInfoSchedule(7, todayPlus4Y)),
                Notional.Of(Schedule.Product.Rates, Amount.Of(Currency.Gbp, -1750000m), ri, CreateTradeInfoSchedule(8, todayPlus10Y)),
                Notional.Of(Schedule.Product.Rates, Amount.Of(Currency.Eur, 1620000m), ri, CreateTradeInfoSchedule(8, todayPlus10Y)),
                Notional.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, -120000m), ri, CreateTradeInfoSchedule(9, todayPlus3M)),
                Notional.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, 2140000m), ri, CreateTradeInfoSchedule(9, todayPlus3M)),
                Notional.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, 4350000m), ri, CreateTradeInfoSchedule(10, todayPlus4Y)),
                Notional.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, 4100000m), ri, CreateTradeInfoSchedule(11, todayPlus10Y)),
                Notional.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, -5120000m), ri, CreateTradeInfoSchedule(11, todayPlus10Y)),

                // Schedule - Present Values
                PresentValue.Of(Schedule.Product.Commodity, Amount.Of(Currency.Usd, 490000m), ri, CreateTradeInfoSchedule(1, todayPlus3M)),
                PresentValue.Of(Schedule.Product.Credit, Amount.Of(Currency.Usd, -60000m), ri, CreateTradeInfoSchedule(2, todayPlus3M)),
                PresentValue.Of(Schedule.Product.Credit, Amount.Of(Currency.Usd, 610000m), ri, CreateTradeInfoSchedule(3, todayPlus10Y)),
                PresentValue.Of(Schedule.Product.Fx, Amount.Of(Currency.Usd, 320000m), ri, CreateTradeInfoSchedule(4, todayPlus3M)),
                PresentValue.Of(Schedule.Product.Equity, Amount.Of(Currency.Usd, -230000m), ri, CreateTradeInfoSchedule(5, todayPlus4Y)),
                PresentValue.Of(Schedule.Product.Rates, Amount.Of(Currency.Usd, 1850000m), ri, CreateTradeInfoSchedule(6, todayPlus3M)),
                PresentValue.Of(Schedule.Product.Rates, Amount.Of(Currency.Usd, -450000m), ri, CreateTradeInfoSchedule(7, todayPlus4Y)),
                PresentValue.Of(Schedule.Product.Rates, Amount.Of(Currency.Gbp, -170000m), ri, CreateTradeInfoSchedule(8, todayPlus10Y)),
                PresentValue.Of(Schedule.Product.Rates, Amount.Of(Currency.Eur, 260000m), ri, CreateTradeInfoSchedule(8, todayPlus10Y)),
                PresentValue.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, -60000m), ri, CreateTradeInfoSchedule(9, todayPlus3M)),
                PresentValue.Of(Schedule.Product.Other, Amount.Of(Currency.Usd, -240000m), ri, CreateTradeInfoSchedule(11, todayPlus10Y)),
            };

            return(dataEntities.AsReadOnly());
        }
        /// <summary>
        /// Serialize to a JSON object
        /// </summary>
        public new void SerializeJson(Utf8JsonWriter writer, JsonSerializerOptions options, bool includeStartObject = true)
        {
            if (includeStartObject)
            {
                writer.WriteStartObject();
            }
            ((fhirCsR4.Models.BackboneElement) this).SerializeJson(writer, options, false);

            if (Identifier != null)
            {
                writer.WritePropertyName("identifier");
                Identifier.SerializeJson(writer, options);
            }

            if (Predecessor != null)
            {
                writer.WritePropertyName("predecessor");
                Predecessor.SerializeJson(writer, options);
            }

            if (Type != null)
            {
                writer.WritePropertyName("type");
                Type.SerializeJson(writer, options);
            }

            if (Request != null)
            {
                writer.WritePropertyName("request");
                Request.SerializeJson(writer, options);
            }

            if (Submitter != null)
            {
                writer.WritePropertyName("submitter");
                Submitter.SerializeJson(writer, options);
            }

            if (Response != null)
            {
                writer.WritePropertyName("response");
                Response.SerializeJson(writer, options);
            }

            if (!string.IsNullOrEmpty(Date))
            {
                writer.WriteString("date", (string)Date !);
            }

            if (_Date != null)
            {
                writer.WritePropertyName("_date");
                _Date.SerializeJson(writer, options);
            }

            if (Responsible != null)
            {
                writer.WritePropertyName("responsible");
                Responsible.SerializeJson(writer, options);
            }

            if (Payee != null)
            {
                writer.WritePropertyName("payee");
                Payee.SerializeJson(writer, options);
            }

            if (Amount != null)
            {
                writer.WritePropertyName("amount");
                Amount.SerializeJson(writer, options);
            }

            if (includeStartObject)
            {
                writer.WriteEndObject();
            }
        }
        private Payment CreatePayment(APIContext apiContext, string redirectUrl)
        {
            //similar to credit card create itemlist and add item objects to it
            var itemList = new ItemList()
            {
                items = new List <Item>()
            };

            itemList.items.Add(new Item()
            {
                name     = "Item Name",
                currency = "USD",
                price    = "5",
                quantity = "1",
                sku      = "sku"
            });

            var payer = new Payer()
            {
                payment_method = "paypal"
            };

            // Configure Redirect Urls here with RedirectUrls object
            var redirUrls = new RedirectUrls()
            {
                cancel_url = redirectUrl,
                return_url = redirectUrl
            };

            // similar as we did for credit card, do here and create details object
            var details = new Details()
            {
                tax      = "1",
                shipping = "1",
                subtotal = "5"
            };

            // similar as we did for credit card, do here and create amount object
            var amount = new Amount()
            {
                currency = "USD",
                total    = "7", // Total must be equal to sum of shipping, tax and subtotal.
                details  = details
            };

            var transactionList = new List <Transaction>();

            transactionList.Add(new Transaction()
            {
                description    = "Transaction description.",
                invoice_number = "your invoice number",
                amount         = amount,
                item_list      = itemList
            });

            this.payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };

            // Create a payment using a APIContext
            return(this.payment.Create(apiContext));
        }
        private async void ConfirmButton_Clicked(object sender, EventArgs e)
        {
            var amtEntry = AmountEntry;

            if (String.IsNullOrEmpty(amtEntry.Text) || amtEntry.Text == "")
            {
                amtEntry.Text        = String.Empty;
                amtEntry.Placeholder = "0.0";
                Amount = 0.0;
                await DisplayAlert("Error", "Enter valid amount!", "Ok");

                return;
            }
            else
            {
                if (double.TryParse(amtEntry.Text, out double temp) && temp > 1)
                {
                    Amount = temp;
                }
                else
                {
                    amtEntry.Text        = String.Empty;
                    amtEntry.Placeholder = "0.0";
                    Amount = 0.0;
                    await DisplayAlert("Error", "Enter valid amount!", "Ok");

                    return;
                }
            }
            if (upfilebytes == null)
            {
                await DisplayAlert("Error", "Click bill photo!", "Ok");

                return;
            }
            var current = Connectivity.NetworkAccess;

            if (current == NetworkAccess.Internet)
            {
                MainFrame.IsVisible       = false;
                LoadingOverlay.IsVisible  = true;
                LoadingIndicatorText.Text = "Uploading Bill";
                try
                {
                    var request  = new GeolocationRequest(GeolocationAccuracy.High, TimeSpan.FromSeconds(10));
                    var location = await Geolocation.GetLocationAsync(request);

                    if (location == null)
                    {
                        location = await Geolocation.GetLastKnownLocationAsync();
                    }
                    if (location != null)
                    {
                        if (location.IsFromMockProvider)
                        {
                            LoadingOverlay.IsVisible = false;
                            MainFrame.IsVisible      = true;
                            await DisplayAlert("Error", "Your device is set to use mock location.Please disable it and try again!", "OK");

                            return;
                        }
                        try
                        {
                            var lat        = location.Latitude;
                            var lon        = location.Longitude;
                            var placemarks = await Geocoding.GetPlacemarksAsync(lat, lon);

                            var placemark = placemarks?.FirstOrDefault();
                            if (placemark != null)
                            {
                                var Lati         = lat;
                                var Longi        = lon;
                                var PlaceDetails = "";
                                if (!String.IsNullOrEmpty(placemark.SubThoroughfare))
                                {
                                    PlaceDetails = placemark.SubThoroughfare;
                                }
                                if (!String.IsNullOrEmpty(placemark.Thoroughfare))
                                {
                                    PlaceDetails = $"{PlaceDetails}, {placemark.Thoroughfare}";
                                }
                                if (!String.IsNullOrEmpty(placemark.SubLocality))
                                {
                                    PlaceDetails = $"{PlaceDetails}, {placemark.SubLocality}";
                                }
                                if (!String.IsNullOrEmpty(placemark.Locality))
                                {
                                    PlaceDetails = $"{PlaceDetails}, {placemark.Locality}";
                                }
                                if (!String.IsNullOrEmpty(placemark.SubAdminArea))
                                {
                                    PlaceDetails = $"{PlaceDetails}, {placemark.SubAdminArea}";
                                }
                                if (!String.IsNullOrEmpty(placemark.AdminArea))
                                {
                                    PlaceDetails = $"{PlaceDetails}, {placemark.AdminArea}";
                                }
                                if (!String.IsNullOrEmpty(PlaceDetails))
                                {
                                    if (PlaceDetails.Length > 0)
                                    {
                                        if (PlaceDetails[0] == ',')
                                        {
                                            PlaceDetails = PlaceDetails.Remove(0, 1);
                                        }
                                    }
                                }
                                var statime = $"{DateTime.Now.ToLongDateString()}  {String.Format("{0:hh:mm tt}", DateTime.Now)}";
                                await Task.Run(async() =>
                                {
                                    using (var httpClient = new HttpClient())
                                    {
                                        try
                                        {
                                            var fname   = $"{Guid.NewGuid().ToString()}.jpg";
                                            string IUrl = DifferentUrls.UploadBillUrl;
                                            MultipartFormDataContent content = new MultipartFormDataContent();
                                            ByteArrayContent baContent       = new ByteArrayContent(upfilebytes);
                                            content.Add(baContent, "file", fname);
                                            var response = await httpClient.PostAsync(IUrl, content);
                                            if (!response.IsSuccessStatusCode)
                                            {
                                                Device.BeginInvokeOnMainThread(async() =>
                                                {
                                                    var Message = "Server Is Down. Try Again After Some Time";
                                                    await DisplayAlert("Error", Message, "OK");
                                                    MainFrame.IsVisible      = true;
                                                    LoadingOverlay.IsVisible = false;
                                                    return;
                                                });
                                                return;
                                            }
                                            var responsestr = response.Content.ReadAsStringAsync().Result;
                                            if (responsestr == "False")
                                            {
                                                Device.BeginInvokeOnMainThread(async() =>
                                                {
                                                    var Message = "Unable to upload Bill. Try After Some time!!!";
                                                    await DisplayAlert("Error", Message, "OK");
                                                    MainFrame.IsVisible      = true;
                                                    LoadingOverlay.IsVisible = false;
                                                    return;
                                                });
                                                return;
                                            }
                                            else
                                            {
                                                ImageUrl = responsestr;
                                            }
                                        }
                                        catch (Exception)
                                        {
                                            Device.BeginInvokeOnMainThread(() =>
                                            {
                                                var Message = "Check Your Internet Connection and Try Again";
                                                DisplayAlert("Error", Message, "OK");
                                                MainFrame.IsVisible      = true;
                                                LoadingOverlay.IsVisible = false;
                                                return;
                                            });
                                            return;
                                        }
                                    }
                                    string url     = DifferentUrls.AddOtherBillUrl;
                                    HttpContent q1 = new FormUrlEncodedContent(new List <KeyValuePair <string, string> >()
                                    {
                                        new KeyValuePair <string, string>("Username", Application.Current.Properties["Username"].ToString()), new KeyValuePair <string, string>("Password", Application.Current.Properties["Password"].ToString()), new KeyValuePair <string, string>("Addresss", PlaceDetails), new KeyValuePair <string, string>("Timestamp", statime), new KeyValuePair <string, string>("JID", Application.Current.Properties["JID"].ToString()), new KeyValuePair <string, string>("BillLink", ImageUrl), new KeyValuePair <string, string>("BillAmt", Amount.ToString())
                                    });
                                    using (var httpClient = new HttpClient())
                                    {
                                        try
                                        {
                                            Task <HttpResponseMessage> getResponse = httpClient.PostAsync(url, q1);
                                            HttpResponseMessage response           = await getResponse;
                                            if (response.IsSuccessStatusCode)
                                            {
                                                var myContent = await response.Content.ReadAsStringAsync();
                                                if (myContent == "False")
                                                {
                                                    Device.BeginInvokeOnMainThread(async() =>
                                                    {
                                                        var Message = "Something Went Wrong.Sign In Again!!!";
                                                        await DisplayAlert("Error", Message, "OK");
                                                        MainFrame.IsVisible      = true;
                                                        LoadingOverlay.IsVisible = false;
                                                        Application.Current.Properties["Username"] = string.Empty;
                                                        await Application.Current.SavePropertiesAsync();
                                                        await Navigation.PopToRootAsync();
                                                        Application.Current.MainPage = new NavigationPage(new MainPage());
                                                        return;
                                                    });
                                                }
                                                else
                                                {
                                                    Device.BeginInvokeOnMainThread(async() =>
                                                    {
                                                        var Message = $"Added Bill at {statime}!!";
                                                        await DisplayAlert("Success", Message, "OK");
                                                        MainFrame.IsVisible      = true;
                                                        LoadingOverlay.IsVisible = false;
                                                        await Navigation.PopAsync();
                                                        return;
                                                    });
                                                }
                                            }
                                            else
                                            {
                                                Device.BeginInvokeOnMainThread(() =>
                                                {
                                                    var Message = "Server Is Down. Try Again After Some Time";
                                                    DisplayAlert("Error", Message, "OK");
                                                    MainFrame.IsVisible      = true;
                                                    LoadingOverlay.IsVisible = false;
                                                    return;
                                                });
                                            }
                                        }
                                        catch (Exception)
                                        {
                                            Device.BeginInvokeOnMainThread(() =>
                                            {
                                                var Message = "Check Your Internet Connection and Try Again";
                                                DisplayAlert("Error", Message, "OK");
                                                MainFrame.IsVisible      = true;
                                                LoadingOverlay.IsVisible = false;
                                                return;
                                            });
                                        }
                                    }
                                });
                            }
                            else
                            {
                                LoadingOverlay.IsVisible = false;
                                MainFrame.IsVisible      = true;
                                await DisplayAlert("Error", "Can not connect to location server. Try after some time!", "OK");

                                return;
                            }
                        }
                        catch (FeatureNotSupportedException)
                        {
                            LoadingOverlay.IsVisible = false;
                            MainFrame.IsVisible      = true;
                            await DisplayAlert("Error", "Location feature not supported on your device!", "OK");

                            return;
                        }
                        catch (Exception)
                        {
                            LoadingOverlay.IsVisible = false;
                            MainFrame.IsVisible      = true;
                            await DisplayAlert("Error", "Can not connect to location server. Try after some time!", "OK");

                            return;
                        }
                    }
                }
                catch (FeatureNotSupportedException)
                {
                    LoadingOverlay.IsVisible = false;
                    MainFrame.IsVisible      = true;
                    await DisplayAlert("Error", "Location feature not supported on your device!", "OK");

                    return;
                }
                catch (FeatureNotEnabledException)
                {
                    LoadingOverlay.IsVisible = false;
                    MainFrame.IsVisible      = true;
                    await DisplayAlert("Error", "Enable location access on your device!", "OK");

                    return;
                }
                catch (PermissionException)
                {
                    LoadingOverlay.IsVisible = false;
                    MainFrame.IsVisible      = true;
                    await DisplayAlert("Error", "Location permission not granted. Go to app setting and grant location permission!", "OK");

                    return;
                }
                catch (Exception)
                {
                    LoadingOverlay.IsVisible = false;
                    MainFrame.IsVisible      = true;
                    await DisplayAlert("Error", "Can not connect to location server. Try after some time!", "OK");

                    return;
                }
            }
            else
            {
                LoadingOverlay.IsVisible = false;
                MainFrame.IsVisible      = true;
                await DisplayAlert("Error", "No Internet Connection", "OK");

                return;
            }
        }
Beispiel #47
0
        protected void BtnPurchase_Click(object sender, EventArgs e)
        {
            DropDownList DDLQuantity           = (DropDownList)FormView1.FindControl("ddlQuantity");
            Label        productPrice          = (Label)FormView1.FindControl("ProductPriceLabel");
            decimal      shippingPackagingCost = 5.00m;
            int          productPrice1;

            int.TryParse((string)productPrice.Text, out productPrice1);
            int     quantityOfProducts = int.Parse(DDLQuantity.SelectedValue);
            decimal subTotal           = (quantityOfProducts * productPrice1);
            decimal totalAmount        = subTotal + shippingPackagingCost;


            var config      = ConfigManager.Instance.GetProperties();
            var accessToken = new OAuthTokenCredential(config).GetAccessToken();

            var apiContext = new APIContext(accessToken);

            var productStock = new Item();

            productStock.name     = "Products";
            productStock.currency = "SGD";
            productStock.price    = productPrice1.ToString();
            productStock.sku      = "Levi's Jeans";
            productStock.quantity = quantityOfProducts.ToString();



            var transactionDetails = new Details();

            transactionDetails.tax      = "0";
            transactionDetails.shipping = shippingPackagingCost.ToString();
            transactionDetails.subtotal = subTotal.ToString("0.00");

            var transactionAmount = new Amount();

            transactionAmount.currency = "SGD";
            transactionAmount.total    = totalAmount.ToString("0.00");
            transactionAmount.details  = transactionDetails;

            var transaction = new Transaction();

            transaction.description    = "This is your order";
            transaction.invoice_number = Guid.NewGuid().ToString(); // this should ideally be the id of a record storing the order
            transaction.amount         = transactionAmount;
            transaction.item_list      = new ItemList
            {
                items = new List <Item> {
                    productStock
                }
            };

            var payer = new Payer();

            payer.payment_method = "paypal";

            var    redirectUrls    = new RedirectUrls();
            string strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
            string strUrl          = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");

            redirectUrls.cancel_url = strUrl + "cancel.aspx";
            redirectUrls.return_url = strUrl + "completePurchase.aspx";

            var payment = Payment.Create(apiContext, new Payment
            {
                intent       = "sale",
                payer        = payer,
                transactions = new List <Transaction> {
                    transaction
                },
                redirect_urls = redirectUrls
            });

            Session["paymentId"] = payment.id;

            foreach (var link in payment.links)
            {
                if (link.rel.ToLower().Trim().Equals("approval_url"))
                {
                    Response.Redirect(link.href);
                }
            }
        }
 /// <summary>
 /// The Copy method returns a deep copy of the OtherMeasurement
 /// </summary>
 /// <returns>Copy of Measurement object</returns>
 public override Measurement Copy()
 {
     return(new OtherMeasurement(Amount.Copy()));
 }
 internal protected void Send(Participant to, Amount amount)
 {
     this.Company.Transfer(this, to, amount);
 }
 /// <summary>
 /// The ToHTMLFormattedString method returns a string that includes HTML tags to better display fractions
 /// </summary>
 /// <returns>String containing HTML-formatted representation of OtherMeasurement </returns>
 public override string ToHTMLFormattedString()
 {
     return(Amount.ToHTMLFormattedString());
 }
Beispiel #51
0
        public string ToString(string format)
        {
            Currency currency = Currency.Get(CurrencyCode);

            return(Amount.ToString(format, currency));
        }
 /// <summary>
 /// The ToString method returns a string representation of the OtherMeasurement
 /// </summary>
 /// <returns>String representation of the OtherMeasurement</returns>
 public override string ToString()
 {
     return(Amount.ToString());
 }
Beispiel #53
0
        private Payment CreatePayment(APIContext apiContext, string redirectUrl)
        {
            //create itemlist and add item objects to it
            var amountTemp = TempData["AmountTemp"].ToString();
            var itemList   = new ItemList()
            {
                items = new List <Item>()
            };

            //Adding Item Details like name, currency, price etc
            itemList.items.Add(new Item()
            {
                name     = "Thanh Toán Nạp Tiền Vào Tài Khoản",
                currency = "USD",
                price    = amountTemp,
                quantity = "1",

                sku = "sku"
            });
            var payer = new Payer()
            {
                payment_method = "paypal"
            };
            // Configure Redirect Urls here with RedirectUrls object
            var redirUrls = new RedirectUrls()
            {
                cancel_url = redirectUrl + "&Cancel=true",
                return_url = redirectUrl
            };
            // Adding Tax, shipping and Subtotal details
            var details = new Details()
            {
                tax      = "0",
                shipping = "0",
                subtotal = amountTemp,
            };
            //Final amount with details
            var amount = new Amount()
            {
                currency = "USD",
                total    = (Convert.ToDecimal(amountTemp)).ToString(), // Total must be equal to sum of tax, shipping and subtotal.
                details  = details
            };
            var transactionList = new List <Transaction>();

            // Adding description about the transaction
            transactionList.Add(new Transaction()
            {
                description    = "Thanh Toán BCDHShop",
                invoice_number = Convert.ToString((new Random()).Next(100000)),//Generate an Invoice No
                amount         = amount,
                item_list      = itemList,
            });
            this.payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };
            TempUserPaymentForAccount tempUser = new TempUserPaymentForAccount
            {
                Id          = transactionList.Select(x => x.invoice_number).ToString(),
                NameAccount = "",
                PaymentDate = DateTime.Now,
                UserId      = IDUser,
                PaymentType = UserPaymentName.PAYTOACCOUNT.ToString(),
            };

            // Create a payment using a APIContext
            return(this.payment.Create(apiContext));
        }
 public Debit(Guid accountId, Amount amount)
     : base(accountId, amount)
 {
 }
Beispiel #55
0
        public override void OnAdded(object parent)
#endif
        {
            base.OnAdded(parent);

            if (!AccountGold.Enabled)
            {
                return;
            }

            Mobile          owner     = null;
            SecureTradeInfo tradeInfo = null;

            Container root = parent as Container;

            while (root != null && root.Parent is Container)
            {
                root = (Container)root.Parent;
            }

            parent = root ?? parent;

            if (parent is SecureTradeContainer && AccountGold.ConvertOnTrade)
            {
                var trade = (SecureTradeContainer)parent;

                if (trade.Trade.From.Container == trade)
                {
                    tradeInfo = trade.Trade.From;
                    owner     = tradeInfo.Mobile;
                }
                else if (trade.Trade.To.Container == trade)
                {
                    tradeInfo = trade.Trade.To;
                    owner     = tradeInfo.Mobile;
                }
            }
            else if (parent is BankBox && AccountGold.ConvertOnBank)
            {
                owner = ((BankBox)parent).Owner;
            }

            if (owner == null || owner.Account == null || !owner.Account.DepositGold(Amount))
            {
                return;
            }

            if (tradeInfo != null)
            {
                if (owner.NetState != null && !owner.NetState.NewSecureTrading)
                {
                    var total = Amount / Math.Max(1.0, Account.CurrencyThreshold);
                    var plat  = (int)Math.Truncate(total);
                    var gold  = (int)((total - plat) * Account.CurrencyThreshold);

                    tradeInfo.Plat += plat;
                    tradeInfo.Gold += gold;
                }

                if (tradeInfo.VirtualCheck != null)
                {
                    tradeInfo.VirtualCheck.UpdateTrade(tradeInfo.Mobile);
                }
            }

            owner.SendLocalizedMessage(1042763, Amount.ToString("#,0"));

            Delete();

            ((Container)parent).UpdateTotals();
        }
Beispiel #56
0
 public Credit(Amount amount)
     : base(amount)
 {
 }
 /// <summary> Create a recipe cost table object </summary>
 public RecipeConsumedTable()
 {
     RecipeId   = new RecipeId(new NotNull(), new ForeignKey(TableManager.Recipe, TableManager.Recipe.RecipeId));
     ResourceId = new ResourceId(new NotNull(), new ForeignKey(TableManager.Resource, TableManager.Resource.ResourceId));
     Amount     = new Amount(new NotNull(), new Default <int>(1));
 }
Beispiel #58
0
        private Payment CreatePayment(APIContext apiContext, string redirectUrl)
        {
            var cart           = Session[Common.CommonConstants.CART_SESSION];
            var itemInCartList = new List <CartItem>();

            if (cart != null)
            {
                itemInCartList = (List <CartItem>)cart;
            }
            var couponList        = Session[Common.CommonConstants.COUPON_SESSION];
            var itemInCoupontList = new List <Coupon>();

            if (couponList != null)
            {
                itemInCoupontList = (List <Coupon>)couponList;
            }
            //create itemlist and add item objects to it
            var itemList = new ItemList()
            {
                items = new List <Item>()
            };
            //Các giá trị bao gồm danh sách sản phẩm, thông tin đơn hàng
            //Sẽ được thay đổi bằng hành vi thao tác mua hàng trên website
            //Adding Item Details like name, currency, price etc
            decimal sumProduct = 0;
            var     productDao = new ProductDao();

            foreach (var item in itemInCartList)
            {
                decimal?tempPrice = item.Product.PromotionPrice != null ? item.Product.PromotionPrice / 20000 : item.Product.Price / 20000;
                string  temp      = tempPrice.GetValueOrDefault(0).ToString("N2");
                itemList.items.Add(new Item()
                {
                    //Thông tin đơn hàng
                    name     = item.Product.Name,
                    currency = "USD",
                    price    = temp,
                    quantity = item.Quantity.ToString(),
                    sku      = "sku"
                });
                sumProduct += decimal.Parse(temp) * item.Quantity;
            }
            foreach (var item in itemInCoupontList)
            {
                decimal discountAmount = 0;
                if (item.ByPercentage == true)
                {
                    discountAmount = (sumProduct * item.DiscountBy / 100);
                }
                else
                {
                    discountAmount = item.DiscountBy / 20000;
                }
                itemList.items.Add(new Item()
                {
                    //Thông tin đơn hàng
                    name     = item.Name,
                    currency = "USD",
                    price    = (-discountAmount).ToString("N2"), //tạo item với price = -discountPrice
                    quantity = "1",
                    sku      = "sku"
                });
            }
            decimal subTotal = 0;

            foreach (var item in itemList.items)
            {
                subTotal += decimal.Parse(item.price) * decimal.Parse(item.quantity);
            }
            //Hình thức thanh toán qua paypal
            var payer = new Payer()
            {
                payment_method = "paypal"
            };
            // Configure Redirect Urls here with RedirectUrls object
            var redirUrls = new RedirectUrls()
            {
                cancel_url = redirectUrl + "&Cancel=true",
                return_url = redirectUrl
            };
            //các thông tin trong đơn hàng
            // Adding Tax, shipping and Subtotal details
            var details = new Details()
            {
                tax      = "0",
                shipping = "5",
                subtotal = subTotal.ToString("N2")
            };
            //Đơn vị tiền tệ và tổng đơn hàng cần thanh toán
            //Final amount with details
            decimal tempAmount = decimal.Parse(details.tax) + decimal.Parse(details.shipping) + decimal.Parse(details.subtotal);
            var     amount     = new Amount()
            {
                currency = "USD",
                total    = tempAmount.ToString("N2"), // Total must be equal to sum of shipping, tax and subtotal.
                details  = details
            };
            var transactionList = new List <Transaction>();

            //Tất cả thông tin thanh toán cần đưa vào transaction
            // Adding description about the transaction
            transactionList.Add(new Transaction()
            {
                description    = "Hóa đơn ngày: " + (DateTime.Now).ToString("dd/MM/yyyy"),
                invoice_number = "Hóa đơn lúc: " + (DateTime.Now).ToString("dd/MM/yyyy hh:mm:ss tt"), //Generate an Invoice No
                amount         = amount,
                item_list      = itemList
            });
            this.payment = new Payment()
            {
                intent        = "sale",
                payer         = payer,
                transactions  = transactionList,
                redirect_urls = redirUrls
            };
            // Create a payment using a APIContext
            var gido = this.payment.Create(apiContext);

            return(gido);
        }
Beispiel #59
0
 private AccountTransaction(WalletTransaction tx, Amount debit, Amount credit)
 {
     Transaction = tx;
     Debit       = debit;
     Credit      = credit;
 }
Beispiel #60
0
 public DeliveryTerms()
 {
     Amount           = new Amount();
     DeliveryLocation = new DeliveryLocation();
 }