Пример #1
0
        public static void QueueAllButOpenOrders(OpenOrder ord)
        {
            //Queues all but certain open orders
            DexConnection dex = null;

            lock (DexConnectionList)
            {
                for (int i = 0; i < DexConnectionList.Count; i++)
                {
                    if (DexConnectionList[i].contype == 3 && DexConnectionList[i].outgoing == true && DexConnectionList[i].open == true)
                    {
                        dex = DexConnectionList[i]; break; //Found our connection
                    }
                }
            }

            //Queue all the open orders not already queued that don't match our open order
            lock (MyOpenOrderList)
            {
                for (int i = MyOpenOrderList.Count - 1; i >= 0; i--)
                {
                    if (MyOpenOrderList[i].queued_order == false && MyOpenOrderList[i].order_nonce.Equals(ord.order_nonce) == false)
                    {
                        QueueMyOrderNoLock(MyOpenOrderList[i], dex);
                    }
                }
            }
        }
Пример #2
0
        public async Task DoP2POffer(string toUserId = null)
        {
            string p2POffer = JwtProviderBuilder.P2P
                              .AddOffer("p2p-" + toUserId, "1")
                              .AddSender(UserId, "p2p", "to myself")
                              .AddRecipient(toUserId ?? UserId, "p2p", "to him?")
                              .Jwt;

            OpenOrder createExternalP2POffer =
                await _marketPlaceClient.CreateExternalOffer(p2POffer).ConfigureAwait(false);

            Order submitP2POffer =
                await _marketPlaceClient.SubmitOrder(createExternalP2POffer.Id).ConfigureAwait(false);

            SubmitTransactionResponse submitTransactionResponse = await _blockChainHandler.SendPayment(_keyPair,
                                                                                                       submitP2POffer.BlockChainData.RecipientAddress,
                                                                                                       submitP2POffer.Amount, submitP2POffer.Id).ConfigureAwait(false);

            Order finishedOrder = await WaitForOrderCompletion(UserId, submitP2POffer.Id).ConfigureAwait(false);

            if (!string.IsNullOrEmpty(finishedOrder?.Result?.Jwt))
            {
                SecurityToken token = _marketPlaceJwtProvider.ValidateJwtToken(finishedOrder?.Result?.Jwt);
            }
        }
Пример #3
0
        public static List <OpenOrder> BittrexToOpenOrders(BittrexOrder[] bittrexOrders)
        {
            var list = new List <OpenOrder>();

            foreach (var openOrder in bittrexOrders)
            {
                var pair  = openOrder.Exchange.Split("-");
                var order = new OpenOrder
                {
                    Base              = pair[0],
                    Terms             = pair[1],
                    Exchange          = Constants.Bittrex,
                    CommissionPaid    = openOrder.CommissionPaid,
                    OrderUuid         = openOrder.OrderUuid.ToString(),
                    Condition         = openOrder.Condition,
                    ConditionTarget   = openOrder.ConditionTarget,
                    CancelInitiated   = openOrder.CancelInitiated,
                    ImmediateOrCancel = openOrder.ImmediateOrCancel,
                    IsConditional     = openOrder.IsConditional,
                    Limit             = openOrder.Limit,
                    Opened            = openOrder.Opened,
                    Price             = openOrder.Price,
                    Quantity          = openOrder.Quantity,
                    QuantityRemaining = openOrder.QuantityRemaining,
                    Side              = openOrder.OrderType == OrderTypeExtended.LimitBuy ? TradeSide.Buy : TradeSide.Sell
                };

                list.Add(order);
            }

            return(list);
        }
Пример #4
0
        private void remakeOrder(OpenOrder order, bool fOnlyRecreate = false)
        {
            if (!fOnlyRecreate)
            {
                Status.setStatusByOrder(order.OrderUuid, "Cancelling...");

                if (!Bridge.cancelOrder(order.OrderUuid).Result)
                {
                    Status.setStatusByOrder(order.OrderUuid, "Failed to Cancel");
                    return;
                }

                ToBackup.Push(order);

                Status.setStatusByOrder(order.OrderUuid, "Canceled");
            }

            System.Threading.Thread.Sleep(1000);

            Status.setStatusByOrder(order.OrderUuid, "Recreating...");

            if (!Bridge.createOrder(order, cancelAwait).Result)
            {
                Status.setStatusByOrder(order.OrderUuid, "Unknown order");
                return;
            }

            ToErase.Add(order.OrderUuid);

            Status.removeStatusByOrder(order.OrderUuid);

            return;
        }
Пример #5
0
    public OpenOrder Get()

    {
        OpenOrder auxOrder = new OpenOrder
        {
            CancelInitiated   = this.CancelInitiated,
            Closed            = this.Closed,
            CommissionPaid    = this.CommissionPaid,
            Condition         = this.Condition,
            ConditionTarget   = this.Exchange,
            Exchange          = this.Exchange,
            Limit             = this.Limit,
            Opened            = this.Opened,
            OrderType         = this.OrderType,
            OrderUuid         = this.OrderUuid,
            Price             = this.Price,
            QuantityRemaining = this.QuantityRemaining,
            Uuid              = this.Uuid,
            Quantity          = this.Quantity,
            PricePerUnit      = this.PricePerUnit,
            IsConditional     = this.IsConditional,
            ImmediateOrCancel = this.ImmediateOrCancel
        };

        return(auxOrder);
    }
Пример #6
0
        private async Task DoExternalSpendOffer()
        {
            string externalSpendOffer = JwtProviderBuilder.Spend
                                        .AddOffer("spendit", "111")
                                        .AddSender(UserId, "speeend it", "block chain sutff isn't coded yet lawl, i'm neva goonna spend")
                                        .Jwt;

            OpenOrder createExternalSpendOffer =
                await _marketPlaceClient.CreateExternalOffer(externalSpendOffer).ConfigureAwait(false);

            Order submitSpendOffer =
                await _marketPlaceClient.SubmitOrder(createExternalSpendOffer.Id).ConfigureAwait(false);

            SubmitTransactionResponse submitTransactionResponse = await _blockChainHandler.SendPayment(_keyPair,
                                                                                                       submitSpendOffer.BlockChainData.RecipientAddress,
                                                                                                       submitSpendOffer.Amount, submitSpendOffer.Id).ConfigureAwait(false);


            Order finishedOrder = await WaitForOrderCompletion(UserId, submitSpendOffer.Id).ConfigureAwait(false);

            if (!string.IsNullOrEmpty(finishedOrder?.Result?.Jwt))
            {
                SecurityToken token = _marketPlaceJwtProvider.ValidateJwtToken(finishedOrder?.Result?.Jwt);
            }
        }
Пример #7
0
        public static List <OpenOrder> PoloniexToOpenOrders(Dictionary <string, List <Order> > orders)
        {
            var list = new List <OpenOrder>();

            foreach (var openOrderPair in orders)
            {
                foreach (var openOrder in openOrderPair.Value)
                {
                    var ccy   = openOrderPair.Key.Split('_');
                    var order = new OpenOrder
                    {
                        Exchange  = Constants.Poloniex,
                        Side      = openOrder.Type == Jojatekok.PoloniexAPI.OrderType.Buy ? TradeSide.Buy : TradeSide.Sell,
                        Base      = ccy[0],
                        Terms     = ccy[1],
                        Opened    = DateTime.Now,
                        Quantity  = Convert.ToDecimal(openOrder.AmountQuote),
                        Price     = Convert.ToDecimal(openOrder.PricePerCoin),
                        OrderUuid = openOrder.IdOrder.ToString()
                    };

                    list.Add(order);
                }
            }

            return(list);
        }
Пример #8
0
        private async Task <Order> DoFirstOffer()
        {
            OfferList offers = await _marketPlaceClient.GetOffers().ConfigureAwait(false);

            //lets do the tutorial!
            Offer offer = offers.Offers.SingleOrDefault(o => o.ContentType.Equals("tutorial"));

            //This won't go through because the Kin asset isn't trusted yet
            if (offer != null)
            {
                OpenOrder orderResponse = await _marketPlaceClient.CreateOrderForOffer(offer.Id).ConfigureAwait(false);

                Order submitOrder = await _marketPlaceClient.SubmitOrder(orderResponse.Id).ConfigureAwait(false);

                Order finishedOrder = await WaitForOrderCompletion(UserId, submitOrder.Id).ConfigureAwait(false);

                if (!string.IsNullOrEmpty(finishedOrder?.OrderResult?.Jwt))
                {
                    SecurityToken token = _marketPlaceJwtProvider.ValidateJwtToken(finishedOrder?.OrderResult?.Jwt);
                }

                return(finishedOrder);
            }

            throw new Exception("no offers dawg");
        }
Пример #9
0
        protected void OrderList_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            MessageUserControl.TryRun(() =>
            {
                // Note: POID is imbedded on each list row (with the CommandArgument parameter)
                int poID = int.Parse(e.CommandArgument.ToString());

                PurchaseOrderController sysmgr = new PurchaseOrderController();
                OpenOrder openOrder            = sysmgr.OpenOrder_FindByID(poID);

                PurchaseOrderID.Text = openOrder.POID.ToString();
                Number.Text          = openOrder.PONumber.ToString();
                Vendor.Text          = openOrder.VendorName;
                Phone.Text           = openOrder.VendorPhone;

                // Need to rebind data source before visibility enabled
                ReturnList.DataBind();

                // Load/Reload page content
                ReloadPageContent(poID);

                // Ensure insert template gets purchase order ID
                HiddenField insertPOID = ReturnList.InsertItem.FindControl("PurchaseOrderIDField") as HiddenField;
                insertPOID.Value       = poID.ToString();

                // Highlight selected row
                OrderList.SelectedIndex = e.Item.DisplayIndex;
            },
                                      "Order Found",
                                      "Order details successfully retrieved");
        }
Пример #10
0
 static bool IsValidStopLimitOrder(OpenOrder o)
 {
     return
         (o.OrderType == OpenOrderType.Limit_Sell &&
          o.Condition == "LESS_THAN" &&
          !string.IsNullOrEmpty(o.ConditionTarget));
     //&& o.Price < currentPrice // need current price!
 }
Пример #11
0
        public void OpenOrder_constructor_test()
        {
            Order order = new Order(1, BrokerDateTime.Make(DateTime.Now), "BP12345-RF-01", "RTS-9.13_FT", TradeAction.Buy, OrderType.Market, 10, 0, 0);

            OpenOrder oo = new OpenOrder(order);

            Assert.AreEqual(order, oo.Order);
            Assert.AreEqual(order.Id, oo.OrderId);
            Assert.AreEqual(order.Id, oo.Id);
        }
Пример #12
0
        public void writeOrder(OpenOrder order)
        {
            filestream.Position = filestream.Length;

            norder.Assign(apiKeyStore, order);

            formatter.Serialize(filestream, norder);

            return;
        }
Пример #13
0
        /// <summary>
        /// Get all orders that you currently have opened. A specific market can be requested
        /// </summary>
        /// <param name="market">requires a string literal for the market (ex: BTC-LTC)</param>
        /// <returns>A list of open orders<returns>
        public static List <OpenOrder> GetOpenOrders(string market)
        {
            string url = Constants.baseUrl + "market/getopenorders?apikey=" + Constants.ApiKey + "&market=" + market + "&nonce=" + nonce;

            dynamic response = JsonConvert.DeserializeObject(HTTPMethods.HttpSignAndGet(url));

            if (response.success == false)
            {
                if (response.success == "false")
                {
                    throw new Exception("Unable to get data from API: " + response.message.ToString());
                }
            }

            if (response.message == "INVALID_MARKET")
            {
                throw new ArgumentException("This is not a valid market. Use GetMarkets() to get a list of valid markets.");
            }

            List <OpenOrder> openOrdersList = new List <OpenOrder>();

            if (response.result == null)
            {
                throw new NoOpenOrdersException();
            }
            else
            {
                foreach (var item in response.result)
                {
                    string   uuid              = item.Uuid.ToString();
                    string   orderUuid         = item.OrderUuid.ToString();
                    string   exchange          = item.Exchange.ToString();
                    string   orderType         = item.OrderType.ToString();
                    double   quantity          = Convert.ToDouble(item.Quantity);
                    double   quantityRemaining = Convert.ToDouble(item.QuantityRemaining);
                    double   limit             = Convert.ToDouble(item.Limit);
                    double   commissionPaid    = Convert.ToDouble(item.CommissionPaid);
                    double   price             = Convert.ToDouble(item.Price);
                    string   pricePerUnit      = item.PricePerUnit.ToString();
                    DateTime opened            = Convert.ToDateTime(item.Opened);
                    string   closed            = item.Closed.ToString();
                    bool     cancelInitiated   = Convert.ToBoolean(item.CancelInitiated);
                    bool     immediateOrCancel = Convert.ToBoolean(item.ImmediateOrCancel);
                    bool     isConditional     = Convert.ToBoolean(item.IsConditional);
                    string   condition         = item.Condition.ToString();
                    string   conditionTarget   = item.ConditionTarget.ToString();

                    OpenOrder openOrder = new OpenOrder(uuid, orderUuid, exchange, orderType, quantity, quantityRemaining, limit, commissionPaid, price, pricePerUnit, opened, closed,
                                                        cancelInitiated, immediateOrCancel, isConditional, condition, conditionTarget);

                    openOrdersList.Add(openOrder);
                }
            }
            return(openOrdersList);
        }
Пример #14
0
        private void LoadOpenOrders()
        {
            var dt = new DataTable();

            using (var sqlAdapter = new SQLiteDataAdapter("SELECT * from OpenOrders", conn))
                sqlAdapter.Fill(dt);

            foreach (DataRow row in Holdings.Tables["OpenOrders"].Rows)
            {
                //ADD OpenOrder obj TO OpenOrders ConcDICT in TradeControl
                var openOrd = new OpenOrder((string)row["OrderUuid"], (string)row["Exchange"], (string)row["Type"], Convert.ToDecimal(row["TotalQuantity"]), Convert.ToDecimal(row["TotalReserved"]), Convert.ToDecimal(row["Quantity"]), Convert.ToDecimal(row["QuantityRemaining"]), Convert.ToDecimal(row["Limit"]), Convert.ToDecimal(row["Reserved"]), Convert.ToDecimal(row["CommissionReserved"]), Convert.ToDecimal(row["CommissionReservedRemaining"]), Convert.ToDecimal(row["CommissionPaid"]), Convert.ToDecimal(row["Price"]), Convert.ToDecimal(row["PricePerUnit"]), Convert.ToDateTime(row["Opened"]), (a) => OrderDataCallback(a), (a) => OrderExecutedCallback(a), (string)row["CandlePeriod"]);
                BtrexREST.TradeController.RegisterOpenOrder(openOrd, (string)row["UniqueID"]);
            }
        }
        public override async Task <ResponseWrapper <AcceptedOrder> > SellLimit(string marketName, decimal quantity, decimal rate)
        {
            var currentRate = (await GetTicker(marketName)).Result.Last;

            var acceptedOrderId = Guid.NewGuid().ToString();

            if (currentRate >= rate)
            {
                var order = new Order
                {
                    Closed       = DateTime.Now,
                    Exchange     = marketName,
                    IsOpen       = false,
                    Limit        = rate,
                    Opened       = DateTime.Now,
                    OrderUuid    = acceptedOrderId,
                    Price        = -quantity * rate,
                    PricePerUnit = rate,
                    Quantity     = -quantity
                };
                simulatedFinishedOrders.Add(order);

                var currency = Helper.GetTargetCurrencyFromMarketName(marketName);
                removeBalance(currency, quantity);
            }
            else
            {
                var order = new OpenOrder
                {
                    Closed       = DateTime.Now,
                    Exchange     = marketName,
                    Limit        = rate,
                    Opened       = DateTime.Now,
                    OrderUuid    = acceptedOrderId,
                    Price        = -quantity * rate,
                    PricePerUnit = rate,
                    Quantity     = -quantity
                };
                simulatedOpenOrders.Add(order);
            }

            return(new ResponseWrapper <AcceptedOrder>
            {
                Success = true,
                Result = new AcceptedOrder
                {
                    Uuid = acceptedOrderId
                }
            });
        }
Пример #16
0
        private async Task RunExample()
        {
            // Using the ApiCredentials Class
            // Client = new Api(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));
            // Or not
            // CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);
            // ApiCredentials/(Username, ApiKey, ApiSecret) not needed for public functions
            CexClient = new CexApi();

            // Get Ticker Data
            Ticker tickerData = await CexClient.Ticker(SymbolPair.BTC_USD);

            // Get Order Book
            OrderBook orderBook = await CexClient.OrderBook(SymbolPair.BTC_USD);

            // Get Trade history
            IEnumerable <Trade> tradeHistory = await CexClient.TradeHistory(SymbolPair.BTC_USD);

            // ApiCredentials required for user specific calls or "Private Functions"
            CexClient = new CexApi(CexUsername, CexApiKey, CexApiSecret);

            // Get Account Balance
            Balance accountBalance = await CexClient.AccountBalance();

            // Get Open Orders
            IEnumerable <OpenOrder> openOrders = await CexClient.OpenOrders(SymbolPair.LTC_BTC);

            // Place an order
            OpenOrder openOrder = await CexClient.PlaceOrder(
                SymbolPair.BTC_USD,
                new Order
            {
                Amount = 1.00m,
                Price  = 0.04644000m,
                Type   = OrderType.Buy
            });

            // Cancel an order
            bool didSucceed = await CexClient.CancelOrder(openOrder.Id);

            // GHash.IO Example
            GhashClient = new GhashApi(new ApiCredentials(CexUsername, CexApiKey, CexApiSecret));

            // Get Hash Rate
            Hashrate hashrate = await GhashClient.Hashrate();

            // Get Workers Hash Rate
            IEnumerable <KeyValuePair <string, WorkerHashrate> > workerHashRate = await GhashClient.WorkersHashRate();
        }
Пример #17
0
        public override async Task <AcceptedOrder> BuyLimit(string ccy1, string ccy2, decimal quantity, decimal rate)
        {
            string marketName  = $"{ccy1}-{ccy2}";
            var    currentRate = (await GetTicker(ccy1, ccy2)).Last;

            var acceptedOrderId = Guid.NewGuid().ToString();

            if (currentRate <= rate)
            {
                var order = new Order
                {
                    Closed       = DateTime.Now,
                    Exchange     = marketName,
                    IsOpen       = false,
                    Limit        = rate,
                    Opened       = DateTime.Now,
                    OrderUuid    = acceptedOrderId,
                    Price        = quantity * rate,
                    PricePerUnit = rate,
                    Quantity     = quantity
                };
                simulatedFinishedOrders.Add(order);

                var currency = Helper.GetTargetCurrencyFromMarketName(marketName);
                addBalance(currency, quantity);
            }
            else
            {
                var order = new OpenOrder
                {
                    Closed       = DateTime.Now,
                    Exchange     = marketName,
                    Limit        = rate,
                    Opened       = DateTime.Now,
                    OrderUuid    = acceptedOrderId,
                    Price        = quantity * rate,
                    PricePerUnit = rate,
                    Quantity     = quantity
                };
                simulatedOpenOrders.Add(order);
            }

            return(new AcceptedOrder
            {
                Uuid = acceptedOrderId
            });
        }
Пример #18
0
        public void Handle(OpenOrder command)
        {
            //No Invariants ..Imagine verifying the customer can open orders or whatever...

            var order = NewOrder(command.OrderId);

            Apply(new Effect
            {
                Event = new OrderOpened
                {
                    OrderId = command.OrderId, CustomerId = command.CustomerId
                },
                Entity = order
            });

            SaveChanges();
            //All "Handle" methods could be wrapped in a
            //(save changes / retry n-times on revision conflict)
        }
Пример #19
0
        public async Task <bool> createOrder(OpenOrder orderData, System.Threading.CancellationTokenSource cancelOrderAwait)
        {
            ResponseWrapper <AcceptedOrder> response;

            do
            {
                switch (orderData.OrderType)
                {
                case "LIMIT_BUY":
                    response = await account.BuyLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit);

                    break;

                case "LIMIT_SELL":
                    response = await account.SellLimit(orderData.Exchange, orderData.QuantityRemaining, orderData.Limit);

                    break;

                default:
                    return(false);
                }
                await Task.Delay(Constants.second);
            }while (!response.Success);

            if (cancelOrderAwait != null)
            {
                cancelOrderAwait.Cancel();
            }

            while (!ActiveOrders.Exists(x => x.OrderUuid == response.Result.Uuid))
            {
                await Task.Delay(5 *Constants.second);

                if (cancelOrderAwait != null)
                {
                    cancelOrderAwait.Cancel();
                }
            }

            OnHoldOrders.Remove(orderData);

            return(true);
        }
Пример #20
0
        private async Task DoExternalEarnOffer()
        {
            string externalEarnOffer = JwtProviderBuilder.Earn
                                       .AddOffer("earrrnit", "111")
                                       .AddRecipient(UserId, "earrrnit it", "block chain sutff isn't coded yet lawl, i'm neva goonna earn")
                                       .Jwt;

            OpenOrder createExternalEarnOffer =
                await _marketPlaceClient.CreateExternalOffer(externalEarnOffer).ConfigureAwait(false);

            Order submitEarnOffer =
                await _marketPlaceClient.SubmitOrder(createExternalEarnOffer.Id).ConfigureAwait(false);

            Order finishedOrder = await WaitForOrderCompletion(UserId, submitEarnOffer.Id).ConfigureAwait(false);

            if (!string.IsNullOrEmpty(finishedOrder?.Result?.Jwt))
            {
                SecurityToken token = _marketPlaceJwtProvider.ValidateJwtToken(finishedOrder?.Result?.Jwt);
            }
        }
Пример #21
0
 public void Assign(string api, OpenOrder order)
 {
     this.ApiKey            = api;
     this.CancelInitiated   = order.CancelInitiated;
     this.Closed            = order.Closed;
     this.CommissionPaid    = order.CommissionPaid;
     this.Condition         = order.Condition;
     this.ConditionTarget   = order.Exchange;
     this.Exchange          = order.Exchange;
     this.Limit             = order.Limit;
     this.Opened            = order.Opened;
     this.OrderType         = order.OrderType;
     this.OrderUuid         = order.OrderUuid;
     this.Price             = order.Price;
     this.QuantityRemaining = order.QuantityRemaining;
     this.Uuid              = order.Uuid;
     this.Quantity          = order.Quantity;
     this.PricePerUnit      = order.PricePerUnit;
     this.IsConditional     = order.IsConditional;
     this.ImmediateOrCancel = order.ImmediateOrCancel;
 }
        public void AddNewOpenOrderMessage(OpenOrder openOrder)
        {
            using (var dbContext = new MyDBContext())
            {
                openOrder.UpdateTime = DateTime.Now;
                if (openOrder.Status == "Cancelled" || openOrder.Status == "Filled")
                {
                    var openorder =
                        dbContext.OpenOrder.Where(x => x.PermanentId == openOrder.PermanentId).ToList();
                    if (openorder.Count > 0)
                    {
                        DeleteAndSaveOpenOrder(openorder, dbContext);
                    }
                }

                else
                {
                    openOrdersDictionary.TryGetValue(openOrder.OrderId, out string status);

                    if (string.IsNullOrWhiteSpace(status))
                    {
                        openOrdersDictionary.Add(openOrder.OrderId, openOrder.Status);
                        Add(openOrder, dbContext);
                        SaveChanges(dbContext);
                    }
                    else
                    {
                        if (status == openOrder.Status)
                        {
                            return;
                        }
                        else if (status != openOrder.Status)
                        {
                            openOrdersDictionary[openOrder.OrderId] = openOrder.Status;
                            //not important to update database on this instance
                        }
                    }
                }
            }
        }
Пример #23
0
        public void OrderDataCallback(OpenOrder OrderData)
        {
            //CREATE/UPDATE DATA ENTRIES IN OpenOrders AND ENQUEUE SQL SAVE-ORDER-UPDATE
            var     UniqueID = string.Format("UniqueID = '{0}_{1}'", OrderData.CandlePeriod, OrderData.Exchange);
            var     rows     = Holdings.Tables["OpenOrders"].Select(string.Format("UniqueID = '{0}'", UniqueID));
            DataRow row;

            if (rows.Count() == 0)
            {
                row = Holdings.Tables["OpenOrders"].NewRow();
                Holdings.Tables["OpenOrders"].Rows.Add(row);
            }
            else
            {
                row = rows.First();
            }

            row["UniqueID"]                   = UniqueID;
            row["OrderUuid"]                  = OrderData.OrderUuid;
            row["Exchange"]                   = OrderData.Exchange;
            row["Type"]                       = OrderData.Type;
            row["TotalQuantity"]              = OrderData.TotalQuantity;
            row["TotalReserved"]              = OrderData.TotalReserved;
            row["Quantity"]                   = OrderData.Quantity;
            row["QuantityRemaining"]          = OrderData.QuantityRemaining;
            row["Limit"]                      = OrderData.Limit;
            row["Reserved"]                   = OrderData.Reserved;
            row["CommissionReserved"]         = OrderData.CommissionReserved;
            row["CommissionReserveRemaining"] = OrderData.CommissionReserveRemaining;
            row["CommissionPaid"]             = OrderData.CommissionPaid;
            row["Price"]                      = OrderData.Price;
            row["PricePerUnit"]               = OrderData.PricePerUnit;
            row["Opened"]                     = OrderData.Opened;
            row["CandlePeriod"]               = OrderData.CandlePeriod;

            SQLOrderUpdateWrites.Enqueue(OrderData);
        }
Пример #24
0
 void EWrapper.openOrder(int orderId, Contract contract, Order order, OrderState orderState)
 {
     OpenOrder?.Invoke(orderId, contract, order, orderState);
 }
Пример #25
0
        public void OrderExecutedCallback(OpenOrder OrderData)
        {
            //Find + REMOVE FROM OpenOrders TABLE,
            var OpenOrderRows = Holdings.Tables["OpenOrders"].Select(string.Format("UniqueID = '{0}_{1}'", OrderData.CandlePeriod, OrderData.Exchange));

            foreach (var row in OpenOrderRows)
            {
                Holdings.Tables["OpenOrders"].Rows.Remove(row);
            }

            OrderData.PricePerUnit = Math.Round((OrderData.TotalReserved / OrderData.TotalQuantity), 8);

            if (OrderData.Type == "LIMIT_BUY")
            {
                //Calculate stoploss, within acceptable range per PeriodLength:
                decimal stoplossRate = OrderData.PricePerUnit - (CalcStoplossMargin(OrderData.Exchange, OrderData.CandlePeriod) * OPTIONS.ATRmultipleT1);

                switch (OrderData.CandlePeriod)
                {
                case "period5m":
                    if (stoplossRate / OrderData.PricePerUnit < 0.98M)
                    {
                        stoplossRate = OrderData.PricePerUnit * 0.98M;
                    }
                    break;

                case "period20m":
                    if (stoplossRate / OrderData.PricePerUnit < 0.95M)
                    {
                        stoplossRate = OrderData.PricePerUnit * 0.95M;
                    }
                    break;

                case "period1h":
                    if (stoplossRate / OrderData.PricePerUnit < 0.93M)
                    {
                        stoplossRate = OrderData.PricePerUnit * 0.93M;
                    }
                    break;

                case "period4h":
                    if (stoplossRate / OrderData.PricePerUnit < 0.90M)
                    {
                        stoplossRate = OrderData.PricePerUnit * 0.90M;
                    }
                    break;

                case "period12h":
                    if (stoplossRate / OrderData.PricePerUnit < 0.88M)
                    {
                        stoplossRate = OrderData.PricePerUnit * 0.88M;
                    }
                    break;
                }

                //If 'SAFEMMODE' then Stoploss will be set to sell at minimum satoshis until profitable:
                if (OPTIONS.SAFE_MODE)
                {
                    stoplossRate = 0.00105M / OrderData.TotalQuantity;
                }

                //Register new StopLoss in controller:
                StopLossController.RegisterStoploss(new StopLoss(OrderData.Exchange, stoplossRate, OrderData.TotalQuantity, (a, b, c) => ReCalcStoploss(a, b, c), (a, b) => StopLossExecutedCallback(a, b), OrderData.CandlePeriod, OPTIONS.VITRUAL_MODE), string.Format("{0}_{1}", OrderData.CandlePeriod, OrderData.Exchange));

                //Enter into Holdings Table:
                var newHoldingsRow = Holdings.Tables[OrderData.CandlePeriod].NewRow();
                newHoldingsRow["MarketDelta"]  = OrderData.Exchange;
                newHoldingsRow["DateTimeBUY"]  = OrderData.Closed;
                newHoldingsRow["Qty"]          = OrderData.TotalQuantity;
                newHoldingsRow["BoughtRate"]   = OrderData.PricePerUnit;
                newHoldingsRow["DateTimeSELL"] = "OWNED";
                newHoldingsRow["SoldRate"]     = "OWNED";
                newHoldingsRow["StopLossRate"] = stoplossRate;
                newHoldingsRow["SL_Executed"]  = 0;
                Holdings.Tables[OrderData.CandlePeriod].Rows.Add(newHoldingsRow);

                //Create + Enqueue SaveDataUpdate + OrderUpdate
                var update = new SaveDataUpdate(OrderData.CandlePeriod, OrderData.Exchange, "BUY", (DateTime)OrderData.Closed, OrderData.TotalQuantity, OrderData.PricePerUnit, stoplossRate);
                SQLDataUpdateWrites.Enqueue(update);
                SQLOrderUpdateWrites.Enqueue(OrderData);

                //OUTPUT BUY
                Trace.WriteLine(string.Format("{0}{1} Bought {2} at {3:0.00000000}, SL_Rate: {4:0.00000000}",
                                              OPTIONS.VITRUAL_MODE ? "[VIRTUAL|" + OrderData.Closed + "] ::: " : "[" + OrderData.Closed + "] ::: ",
                                              OrderData.CandlePeriod.Remove(0, 6),
                                              OrderData.Exchange.Split('-')[1],
                                              OrderData.PricePerUnit,
                                              stoplossRate));
            }
            else if (OrderData.Type == "LIMIT_SELL")
            {
                StopLossController.CancelStoploss(string.Format("{0}_{1}", OrderData.CandlePeriod, OrderData.Exchange));
                //Find row in Holdings:
                var holdingRows = Holdings.Tables[OrderData.CandlePeriod].Select(string.Format("MarketDelta = '{0}'", OrderData.Exchange));

                //Calc profit with BoughtRate and include fees:
                var profit = ((OrderData.PricePerUnit / Convert.ToDecimal(holdingRows[0]["BoughtRate"])) - 1M);
                //Calc compound multiple
                var compoundMultiple = ((Convert.ToDecimal(holdingRows[0]["BoughtRate"]) * Convert.ToDecimal(holdingRows[0]["Qty"])) / OPTIONS.BTCwagerAmt);
                //Calc TradingTotal and NetWorth
                TradingTotal += (profit * compoundMultiple);
                var netWorth = GetNetPercentage();

                var timeHeld = OrderData.Closed - Convert.ToDateTime(holdingRows[0]["DateTimeBUY"]);

                //Remove from Holdings:
                foreach (var row in holdingRows)
                {
                    Holdings.Tables[OrderData.CandlePeriod].Rows.Remove(row);
                }

                //Create and add the SQL SaveDataUpdate + OrderUpdate
                var update = new SaveDataUpdate(OrderData.CandlePeriod, OrderData.Exchange, "SELL", (DateTime)OrderData.Closed, OrderData.TotalQuantity, OrderData.PricePerUnit, null, false, TradingTotal);
                SQLDataUpdateWrites.Enqueue(update);
                SQLOrderUpdateWrites.Enqueue(OrderData);


                //OUTPUT SELL-ON-SIGNAL
                Trace.Write(string.Format("{0}{1} Sold {2} at {3}\r\n    =TradeProfit: ",
                                          OPTIONS.VITRUAL_MODE ? "[VIRTUAL|" + OrderData.Closed + "] ::: " : "[" + OrderData.Closed + "] ::: ",
                                          OrderData.CandlePeriod.Remove(0, 6),
                                          OrderData.Exchange.Split('-')[1],
                                          OrderData.PricePerUnit));
                //OUTPUT PROFIT ON TRADE:
                if (profit < 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                }
                else if (profit > 0)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                Trace.Write(string.Format("{0:+0.###%;-0.###%;0}", profit));
                //OUTPUT TIME HELD
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Trace.Write(string.Format(".....=Time-Held: {0:hh\\:mm\\:ss}.....", timeHeld));
                //OUTPUT GROSS TOTAL PROFIT PERCENTAGE:
                if (TradingTotal < 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                }
                else if (TradingTotal > 0)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkCyan;
                }
                Trace.Write(string.Format("=GrossProfit: {0:+0.###%;-0.###%;0}", TradingTotal / OPTIONS.MAXTOTALENTRANCES));

                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Trace.Write(".....");
                //OUTPUT CURRENT NET WORTH PERCENTAGE INCLUDING HOLDINGS:
                if (netWorth > 0)
                {
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                }
                else if (netWorth < 0)
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkCyan;
                }
                Trace.WriteLine(string.Format("=CurrentNetWorth: {0:+0.###%;-0.###%;0}", netWorth));
                Console.ForegroundColor = ConsoleColor.DarkCyan;
            }
        }
Пример #26
0
        public Dictionary <string, object> Post(BookingDetail objbookingDetail)
        {
            Dictionary <string, object> OrderDetails        = new Dictionary <string, object>();
            List <OpenOrder>            objListOpenOrder    = new List <OpenOrder>();
            List <ReceiptOrder>         objListReceiptOrder = new List <ReceiptOrder>();
            List <ROFilesOrder>         objListROFilesOrder = new List <ROFilesOrder>();
            OpenOrder objOpenOder;

            try
            {
                HomeDAL objHomeDAL = new HomeDAL();
                string  strXml     = string.Empty;
                strXml += "<ebooking><actionname>openbookingid</actionname><bookingid>" + objbookingDetail.BookingID + "</bookingid>"
                          + "<loguserid>" + objbookingDetail.UserId + "</loguserid>"
                          + "<logcentreid>" + objbookingDetail.RevenueCentreID + "</logcentreid>"
                          + "<isclassified>" + objbookingDetail.IsClassified + "</isclassified></ebooking>";
                DataSet objds = objHomeDAL.eBookingActions(strXml);

                if (objds.Tables.Count == 1)
                {
                    objOpenOder         = new OpenOrder();
                    objOpenOder.IsValid = Convert.ToInt16(objds.Tables[0].Rows[0]["ErrorFlag"]);
                    if (objOpenOder.IsValid == 1)
                    {
                        objOpenOder.ErrorMessage = Convert.ToString(objds.Tables[0].Rows[0]["ErrorMessage"]);
                        objOpenOder.IsValid      = Convert.ToInt16(objds.Tables[0].Rows[0]["ErrorFlag"]);
                        objListOpenOrder.Add(objOpenOder);
                        OrderDetails.Add("OpenOrder", objListOpenOrder);
                    }
                }
                else
                {
                    DataTable objdt  = objds.Tables[0];
                    DataTable objdt1 = objds.Tables[1];
                    DataTable objdt2 = objds.Tables[2];


                    if (objdt.Rows.Count > 0)
                    {
                        foreach (DataRow dr in objdt.Rows)
                        {
                            objOpenOder = new OpenOrder();

                            objOpenOder.StartCol             = Convert.ToString(dr["StartCol"]);
                            objOpenOder.Yposition            = Convert.ToString(dr["Yposition"]);
                            objOpenOder.BoxNumber            = Convert.ToString(dr["BoxNumber"]);
                            objOpenOder.RevenueCentreID      = Convert.ToInt16(dr["RevenueCentreID"]);
                            objOpenOder.BookingCentreID      = Convert.ToInt16(dr["BookingCentreID"]);
                            objOpenOder.IsClassified         = Convert.ToInt16(dr["IsClassified"]);
                            objOpenOder.RODate               = Convert.ToString(dr["RODate"]);
                            objOpenOder.BookingDate          = Convert.ToDateTime(dr["BookingDate"]).ToString("dd/MM/yyyy HH:mm:ss.fff");
                            objOpenOder.BookingExecID        = Convert.ToInt16(dr["BookingExecID"]);
                            objOpenOder.BookingNumber        = Convert.ToString(dr["BookingNumber"]);
                            objOpenOder.RONumber             = Convert.ToString(dr["RONumber"]);
                            objOpenOder.AgencyID             = Convert.ToInt16(dr["AgencyID"]);
                            objOpenOder.ClientID             = Convert.ToInt16(dr["ClientID"]);
                            objOpenOder.AgentID              = Convert.ToInt16(dr["AgentID"]);
                            objOpenOder.CanvassorID          = Convert.ToInt16(dr["CanvassorID"]);
                            objOpenOder.ROType               = Convert.ToInt16(dr["ROType"]);
                            objOpenOder.BillingCycle         = Convert.ToInt16(dr["BillingCycle"]);
                            objOpenOder.BillTo               = Convert.ToInt16(dr["BillTo"]);
                            objOpenOder.BillType             = Convert.ToInt16(dr["BillType"]);
                            objOpenOder.PaymentModeID        = Convert.ToInt16(dr["PaymentMode"]);
                            objOpenOder.IsManualBilling      = Convert.ToInt16(dr["IsManualBilling"]);
                            objOpenOder.SourceOrder          = Convert.ToInt16(dr["SourceOrder"]);
                            objOpenOder.ROStatus             = Convert.ToInt16(dr["ROStatus"]);
                            objOpenOder.RateFieldChanged     = Convert.ToInt16(dr["RateFieldChanged"]);
                            objOpenOder.ProductID            = Convert.ToInt16(dr["ProductID"]);
                            objOpenOder.BrandID              = Convert.ToInt16(dr["BrandID"]);
                            objOpenOder.SMEID                = Convert.ToInt16(dr["SMEID"]);
                            objOpenOder.BoxTypeID            = Convert.ToInt16(dr["BoxTypeID"]);
                            objOpenOder.ROID                 = Convert.ToInt64(dr["ROID"]);
                            objOpenOder.BookingID            = Convert.ToInt64(dr["BookingID"]);
                            objOpenOder.InsNum               = Convert.ToInt16(dr["InsNum"]);
                            objOpenOder.PEID                 = Convert.ToInt16(dr["PEID"]);
                            objOpenOder.ReleaseID            = Convert.ToInt16(dr["ReleaseID"]);
                            objOpenOder.ProdPEID             = Convert.ToInt16(dr["ProdPEID"]);
                            objOpenOder.ProdReleaseID        = Convert.ToInt16(dr["ProdReleaseID"]);
                            objOpenOder.ScheduledDate        = Convert.ToDateTime(dr["ScheduledDate"]).ToString("dd/MM/yyyy");
                            objOpenOder.PackageID            = Convert.ToInt16(dr["PackageID"]);
                            objOpenOder.AdTypeID             = Convert.ToInt16(dr["AdTypeID"]);
                            objOpenOder.PremiaID             = Convert.ToInt16(dr["PremiaID"]);
                            objOpenOder.ColorID              = Convert.ToInt16(dr["Color"]);
                            objOpenOder.Status               = Convert.ToInt16(dr["Status"]);
                            objOpenOder.AuditStatus          = Convert.ToInt16(dr["AuditStatus"]);
                            objOpenOder.Free_or_Paid         = Convert.ToInt16(dr["Free_or_Paid"]);
                            objOpenOder.FreeAds              = Convert.ToInt16(dr["FreeAds"]);
                            objOpenOder.PaidAds              = Convert.ToInt16(dr["PaidAds"]);
                            objOpenOder.ItemRateFieldChanged = Convert.ToInt16(dr["ItemRateFieldChanged"]);
                            objOpenOder.RateCardID           = Convert.ToInt16(dr["RateCardID"]);
                            objOpenOder.AdRateID             = Convert.ToInt16(dr["AdRateID"]);
                            objOpenOder.CardRate             = Convert.ToDouble(dr["CardRate"]);
                            objOpenOder.CardAmount           = Convert.ToDouble(dr["CardAmount"]);
                            objOpenOder.AgreedRate           = Convert.ToDouble(dr["AgreedRate"]);
                            objOpenOder.AgreedAmount         = Convert.ToDouble(dr["AgreedAmount"]);
                            objOpenOder.PECardBaseRate       = Convert.ToDouble(dr["PECardBaseRate"]);
                            objOpenOder.ColorRate            = Convert.ToDouble(dr["PECardCOlourRate"]);
                            objOpenOder.PremiaRate           = Convert.ToDouble(dr["PECardPremiaRate"]);
                            objOpenOder.AgreedDiscPer        = Convert.ToDecimal(dr["AgreedDiscPer"]);
                            objOpenOder.AgreedDiscAmount     = Convert.ToDouble(dr["AgreedDiscAmount"]);
                            objOpenOder.CommissionPer        = Convert.ToDouble(dr["CommissionPer"]);
                            objOpenOder.CommissionAmount     = Convert.ToDouble(dr["CommissionAmount"]);
                            objOpenOder.DisCountColorPer     = Convert.ToDouble(dr["DisCountColorPer"]);
                            objOpenOder.DisCountPremiaPer    = Convert.ToDouble(dr["DisCountPremiaPer"]);
                            // objOpenOder.ExtraDiscountforPE = Convert.ToDouble(dr["ExtraDiscountforPE"]);
                            objOpenOder.ExtraChargesForPE     = Convert.ToDouble(dr["ExtraChargesForPE"]);
                            objOpenOder.ExtraChargesPer       = Convert.ToDouble(dr["ExtraChargesPer"]);
                            objOpenOder.ExtraDiscPer          = Convert.ToDouble(dr["ExtraDiscPer"]);
                            objOpenOder.ExtraDiscAmount       = Convert.ToDouble(dr["ExtraDiscAmount"]);
                            objOpenOder.ExtraBoxChargesPer    = Convert.ToDouble(dr["BoxChargesPer"]);
                            objOpenOder.ExtraBoxChargesAmount = Convert.ToDouble(dr["BoxChargesAmount"]);
                            objOpenOder.PreVATAmountforPE     = Convert.ToDouble(dr["PreVATAmountforPE"]);
                            objOpenOder.NetAmountforPE        = Convert.ToDouble(dr["NetAmountforPE"]);
                            objOpenOder.Net                       = Convert.ToDouble(dr["Net"]);
                            objOpenOder.Receivable                = Convert.ToDouble(dr["Receivable"]);
                            objOpenOder.VatPer                    = Convert.ToDouble(dr["VatPer"]);
                            objOpenOder.VatAmount                 = Convert.ToDouble(dr["VatAmount"]);
                            objOpenOder.WTPer                     = Convert.ToDouble(dr["WTPer"]);
                            objOpenOder.WTAmount                  = Convert.ToDouble(dr["WTAmount"]);
                            objOpenOder.MaterialID                = Convert.ToString(dr["MaterialID"]);
                            objOpenOder.AdsizeID                  = Convert.ToInt16(dr["AdsizeID"]);
                            objOpenOder.Adsize                    = Convert.ToString(dr["AdSize"]);
                            objOpenOder.AdSizeHeight              = Convert.ToDouble(dr["AdHeight"]);
                            objOpenOder.AdSizeWidth               = Convert.ToDouble(dr["AdColsize"]);
                            objOpenOder.BillableSize              = Convert.ToString(dr["BillableSize"]);
                            objOpenOder.BillableColSize           = Convert.ToDouble(dr["BillableColSize"]);
                            objOpenOder.BillableHeight            = Convert.ToDouble(dr["BillableHeight"]);
                            objOpenOder.BillableArea              = Convert.ToDouble(dr["BillableArea"]);
                            objOpenOder.UOM                       = Convert.ToInt16(dr["UOM"]);
                            objOpenOder.SchemeID                  = Convert.ToInt16(dr["SchemeID"]);
                            objOpenOder.SchemeDetailID            = Convert.ToInt16(dr["SchemedetailID"]);
                            objOpenOder.MaterialSource            = Convert.ToInt16(dr["MaterialSource"]);
                            objOpenOder.MaterialType              = Convert.ToInt16(dr["MaterialType"]);
                            objOpenOder.MaterialStatus            = Convert.ToInt16(dr["MaterialStatus"]);
                            objOpenOder.AgencyName                = Convert.ToString(dr["AgencyName"]);
                            objOpenOder.ClientName                = Convert.ToString(dr["ClientName"]);
                            objOpenOder.CasualClientName          = Convert.ToString(dr["CasualClientName"]);
                            objOpenOder.CanvassorName             = Convert.ToString(dr["CanvassorName"]);
                            objOpenOder.UserName                  = Convert.ToString(dr["UserName"]);
                            objOpenOder.CentreName                = Convert.ToString(dr["CentreName"]);
                            objOpenOder.MaterialPath              = Convert.ToString(dr["MaterialPath"]);
                            objOpenOder.JobPath                   = Convert.ToString(dr["JobPath"]);
                            objOpenOder.ROFilePath                = Convert.ToString(dr["ROFilePath"]);
                            objOpenOder.PkgIDs                    = Convert.ToString(dr["PkgIDs"]);
                            objOpenOder.PremiaName                = Convert.ToString(dr["PremiaName"]);
                            objOpenOder.SizeName                  = Convert.ToString(dr["SizeName"]);
                            objOpenOder.ColorName                 = Convert.ToString(dr["ColorName"]);
                            objOpenOder.CustomerTypeID            = Convert.ToInt16(dr["CasualRegularFlag"]);
                            objOpenOder.SchedulingInstructions    = Convert.ToString(dr["SchedulingInstructions"]);
                            objOpenOder.BillingInstruction        = Convert.ToString(dr["BillingInstruction"]);
                            objOpenOder.ProdInstructions          = Convert.ToString(dr["ProdInstructions"]);
                            objOpenOder.Caption                   = Convert.ToString(dr["Caption"]);
                            objOpenOder.CasualAddress             = Convert.ToString(dr["CasualAddress"]);
                            objOpenOder.CityID                    = Convert.ToInt32(dr["CityID"]);
                            objOpenOder.Zip                       = Convert.ToString(dr["Zip"]);
                            objOpenOder.Phone                     = Convert.ToString(dr["Phone"]);
                            objOpenOder.NicNumber                 = Convert.ToString(dr["NICNumber"]);
                            objOpenOder.VatNumber                 = Convert.ToString(dr["VATNumber"]);
                            objOpenOder.MBodyCount                = Convert.ToString(dr["MBodyCount"]);
                            objOpenOder.AdClassification          = Convert.ToString(dr["AdClassification"]);
                            objOpenOder.AdtypeID1                 = Convert.ToInt32(dr["Adtype1"]);
                            objOpenOder.AdtypeID2                 = Convert.ToInt32(dr["Adtype2"]);
                            objOpenOder.AdtypeID3                 = Convert.ToInt32(dr["Adtype3"]);
                            objOpenOder.AdtypeID4                 = Convert.ToInt32(dr["Adtype4"]);
                            objOpenOder.AllowCasualClient         = Convert.ToInt32(dr["AllowCasualClient"]);
                            objOpenOder.BoxAddress                = Convert.ToString(dr["BoxAddress"]);
                            objOpenOder.IsCD                      = Convert.ToInt32(dr["IsCD"]);
                            objOpenOder.StyleSheetID              = Convert.ToInt32(dr["StyleSheetID"]);
                            objOpenOder.IsLogo                    = Convert.ToInt32(dr["IsLogo"]);
                            objOpenOder.U_BodyText                = Convert.ToString(dr["U_BodyText"]);
                            objOpenOder.PECode                    = Convert.ToString(dr["PECode"]);
                            objOpenOder.AdStatus                  = Convert.ToString(dr["AdStatus"]);
                            objOpenOder.FileNames                 = Convert.ToString(dr["FileNames"]);
                            objOpenOder.ReasonForUnconfirmationID = Convert.ToString(dr["ReasonForUnconfirmationID"]);
                            objOpenOder.FileHeight                = Convert.ToString(dr["FileHeight"]);
                            objOpenOder.ReadOnlyFlag              = Convert.ToString(dr["ReadOnlyFlag"]);
                            objOpenOder.BlockB4ScheduledDate      = Convert.ToDateTime(dr["BlockB4ScheduledDate"]).ToString("dd/MM/yyyy");
                            objOpenOder.AdColumns                 = Convert.ToString(dr["CDADColumns"]);
                            objOpenOder.MaterialTypeDescription   = Convert.ToString(dr["MaterialTypeDescription"]);
                            objOpenOder.DeferredPayment           = Convert.ToInt16(dr["DeferredPayment"]);
                            objOpenOder.AgencyPaymentMode         = Convert.ToInt16(dr["AgencyPaymentMode"]);
                            objOpenOder.CompositeReceiptID        = Convert.ToString(dr["CompositeReceiptID"]);
                            objListOpenOrder.Add(objOpenOder);
                        }
                    }

                    ROFilesOrder objROFilesOrder;
                    if (objdt1.Rows.Count > 0)
                    {
                        foreach (DataRow dr in objdt1.Rows)
                        {
                            objROFilesOrder             = new ROFilesOrder();
                            objROFilesOrder.ROID        = Convert.ToInt64(dr["ROID"]);
                            objROFilesOrder.ROFileName  = Convert.ToString(dr["ROFileName"]);
                            objROFilesOrder.ROFileType  = Convert.ToString(dr["ROFileType"]);
                            objROFilesOrder.ROFileTitle = Convert.ToString(dr["ROFileTitle"]);
                            objListROFilesOrder.Add(objROFilesOrder);
                        }
                    }

                    ReceiptOrder objReceiptOder;
                    if (objdt2.Rows.Count > 0)
                    {
                        foreach (DataRow dr in objdt2.Rows)
                        {
                            objReceiptOder                    = new ReceiptOrder();
                            objReceiptOder.ReceiptID          = Convert.ToInt64(dr["ReceiptID"]);
                            objReceiptOder.ReceiptNumber      = Convert.ToInt64(dr["ReceiptNumber"]);
                            objReceiptOder.ReceiptPaymentMode = Convert.ToInt16(dr["PaymentMode"]);
                            objReceiptOder.BankID             = Convert.ToInt16(dr["BankID"]);
                            objReceiptOder.BranchID           = Convert.ToInt16(dr["BranchID"]);
                            objReceiptOder.CheckNumber        = Convert.ToString(dr["Number"]);
                            objReceiptOder.Amount             = Convert.ToDouble(dr["Amount"]);
                            objReceiptOder.TotalAmountPaid    = Convert.ToDouble(dr["TotalAmountPaid"]);
                            objReceiptOder.WriteOffAmount     = Convert.ToDouble(dr["WriteOffAmount"]);
                            objReceiptOder.CashRefund         = Convert.ToDouble(dr["CashRefund"]);
                            objReceiptOder.CashReceived       = Convert.ToDouble(dr["CashReceived"]);
                            objListReceiptOrder.Add(objReceiptOder);
                        }
                    }
                    OrderDetails.Add("OpenOrder", objListOpenOrder);
                    OrderDetails.Add("ROFilesOrder", objListROFilesOrder);
                    OrderDetails.Add("ReceiptOrder", objListReceiptOrder);
                }
            }
            catch (Exception ex)
            {
                Utility.ReportError("DisplayOpenOrderController::Post:", ex);
            }
            return(OrderDetails);
        }
 public virtual void openOrder(int orderId, Contract contract, Order order, OrderState orderState)
 {
     OpenOrder?.Invoke(this, new OpenOrderArgs(orderId, contract, order, orderState));
 }
Пример #28
0
 /// <summary>
 /// OpenOrder event invocator
 /// </summary>
 protected virtual void OnOpenOrder(OpenOrderEventArgs e)
 {
     OpenOrder?.Invoke(this, e);
 }
Пример #29
0
 void IEWrapper.OpenOrder(int orderId, Contract contract, Order order, OrderState orderState)
 {
     OpenOrder?.Invoke(new OpenOrderMessage(orderId, contract, order, orderState));
 }
Пример #30
0
 public void Open()
 {
     OpenOrder?.Invoke(this, EventArgs.Empty);
 }