Example #1
0
        static bool SendToForwardAndUpdateStatus(string address, double balance, BtcAddressForwardModel forwardModel)
        {
            var currentForward = forwardModel.GetByBtcFrom(address);

            if (currentForward == null)
            {
                return(false);
            }
            if (currentForward.status == BtcAddressForwardEntity.STATUS_SENT)
            {
                return(false);
            }

            double forwardAmount = balance;

            if (currentForward.dempingpercent > 0) //вычесть dempingpercent
            {
                forwardAmount -= (balance / 100) * currentForward.dempingpercent;
            }
            else if (currentForward.GetForwardAmount() > 0) //forwardint и forwardfraction - точное значение, что нужно отослать
            {
                forwardAmount = currentForward.GetForwardAmount();
            }

            var sendStatus = App.btc.Send(currentForward.btc_to, (decimal)forwardAmount);

            if (sendStatus.IndexOf("txid") == -1)
            {
                return(false);
            }
            forwardModel.UpdateStatus(int.Parse(currentForward.id), BtcAddressForwardEntity.STATUS_SENT);

            return(true);
        }
Example #2
0
        public void AddUpdate()
        {
            Assert.IsTrue(
                new BtcAddressForwardEntity()
            {
                forwardfraction = "01"
            }.GetForwardAmount() == 0.01
                , "Ошибка forwardfraction"
                );

            Assert.IsTrue(
                new BtcAddressForwardEntity()
            {
                forwardint = 2
            }.GetForwardAmount() == 2
                , "Ошибка forwardfraction"
                );

            Assert.IsTrue(
                new BtcAddressForwardEntity()
            {
                forwardint      = 3,
                forwardfraction = "4"
            }.GetForwardAmount() == 3.4
                , "Ошибка forwardint и forwardfraction"
                );

            model.Create(from, to, dempingpercent, forwardint, forwardfraction);
            var i = model.GetByBtcFrom(from);

            Assert.IsTrue(
                i.btc_from == from &&
                int.Parse(i.id) > 0 &&
                i.btc_to == to &&
                i.dempingpercent == dempingpercent &&
                i.forwardint == forwardint &&
                i.forwardfraction == forwardfraction &&
                i.status == BtcAddressForwardEntity.STATUS_WAIT,
                "Не смог создать"
                );

            Assert.IsTrue(model.UpdateStatus(int.Parse(i.id), BtcAddressForwardEntity.STATUS_SENT), "Не получается обновить статус, внутренний ексепшн");
            var changed = model.GetByBtcFrom(from);

            Assert.IsTrue(i.btc_from == from, "Не смог создать");
            Assert.IsTrue(changed.status == BtcAddressForwardEntity.STATUS_SENT, "Не смог обновить (" + changed.status + ") created_at(" + changed.created_at + ")");
        }