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); }
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 + ")"); }