Example #1
0
 private void ReadDataFromOrderMemory(string status)
 {
     if (status == OrderExecutionStatus.RstopExist.ToString())
     {
         ReturnedStopLossOrderCollection.Clear();
         if (MemoryManager.OrderDictionary != null && MemoryManager.OrderDictionary.Count > 0)
         {
             foreach (OrderModel item in MemoryManager.OrderDictionary.Values.Where(x => (x.InternalOrderStatus == OrderExecutionStatus.RstopExist.ToString())))
             {
                 //OrderModel oOrderModel = new OrderModel();
                 AssignData(item);
             }
             //foreach (OrderModel item in MemoryManager.OrderDictionary.Values.Where(x => x.InternalOrderStatus == Enumerations.OrderExecutionStatus.OrderCancelled_Return.ToString()))
             //{
             //    AssignData(item);
             //}
         }
     }
 }
Example #2
0
        private static void AssignData(OrderModel item)
        {
            if (item.InternalOrderStatus == Enumerations.OrderExecutionStatus.RstopExist.ToString())
            {
                if (new[] { "A", "U" }.Any(x => x == item.OrderAction))
                {
                    ReturnedStopLossOrderModel objReturnedOrderModel = new ReturnedStopLossOrderModel();

                    objReturnedOrderModel.BuySell = item.BuySellIndicator;
                    objReturnedOrderModel.SCode   = item.ScripCode;
                    var Segment      = CommonFunctions.GetSegmentID(objReturnedOrderModel.SCode);
                    int DecimalPoint = CommonFunctions.GetDecimal(Convert.ToInt32(objReturnedOrderModel.SCode), "BSE", Segment);
                    objReturnedOrderModel.ScripID    = item.Symbol;
                    objReturnedOrderModel.TotalQty   = item.PendingQuantity;
                    objReturnedOrderModel.RevQty     = item.RevealQty;
                    objReturnedOrderModel.ClientType = item.ClientType;

                    objReturnedOrderModel.LimitRate = (item.Price / Math.Pow(10, DecimalPoint)).ToString();
                    if (Segment == Enumerations.Segment.Currency.ToString())
                    {
                        objReturnedOrderModel.LimitRateString = string.Format("{0}.{1}", objReturnedOrderModel.LimitRate, "0000");
                    }
                    else
                    {
                        objReturnedOrderModel.LimitRateString = string.Format("{0}.{1}", objReturnedOrderModel.LimitRate, "00");
                    }
                    objReturnedOrderModel.TriggertRate = (item.TriggerPrice / Math.Pow(10, DecimalPoint)).ToString();
                    if (Segment == Enumerations.Segment.Currency.ToString())
                    {
                        objReturnedOrderModel.TriggertRateString = string.Format("{0}.{1}", objReturnedOrderModel.TriggertRate, "0000");
                    }
                    else
                    {
                        objReturnedOrderModel.TriggertRateString = string.Format("{0}.{1}", objReturnedOrderModel.TriggertRate, "00");
                    }
                    objReturnedOrderModel.ClientID   = item.ClientId;
                    objReturnedOrderModel.Time       = Convert.ToDateTime(item.Time);
                    objReturnedOrderModel.OrdID      = item.OrderId + item.OrderType;
                    objReturnedOrderModel.ClientType = item.ClientType;
                    objReturnedOrderModel.OrderKey   = string.Format("{0}_{1}", item.ScripCode, item.OrderId);
                    objReturnedOrderModel.SegmentId  = item.SegmentFlag;

                    if (ReturnedStopLossOrderCollection != null && ReturnedStopLossOrderCollection.Count > 0)
                    {
                        if (ReturnedStopLossOrderCollection.Any(x => x.OrderKey == item.OrderKey))
                        {
                            int index = ReturnedStopLossOrderCollection.IndexOf(ReturnedStopLossOrderCollection.Where(x => x.OrderKey == item.OrderKey).FirstOrDefault());
                            ReturnedStopLossOrderCollection[index] = objReturnedOrderModel;
                        }
                        else
                        {
                            ReturnedStopLossOrderCollection.Add(objReturnedOrderModel);
                        }
                    }
                    else
                    {
                        ReturnedStopLossOrderCollection?.Add(objReturnedOrderModel);
                    }
                }
                else if (item.OrderAction == "D")
                {
                    if (ReturnedStopLossOrderCollection != null && ReturnedStopLossOrderCollection.Count > 0)
                    {
                        if (ReturnedStopLossOrderCollection.Any(x => x.OrderKey == item.OrderKey))
                        {
                            int index = ReturnedStopLossOrderCollection.IndexOf(ReturnedStopLossOrderCollection.Where(x => x.OrderKey == item.OrderKey).FirstOrDefault());
                            if (index != -1)
                            {
                                ReturnedStopLossOrderCollection.RemoveAt(index);
                            }
                        }
                    }
                }
            }

            else
            {
                if (ReturnedStopLossOrderCollection != null && ReturnedStopLossOrderCollection.Count > 0)
                {
                    if (ReturnedStopLossOrderCollection.Any(x => x.OrderKey == item.OrderKey))
                    {
                        int index = ReturnedStopLossOrderCollection.IndexOf(ReturnedStopLossOrderCollection.Where(x => x.OrderKey == item.OrderKey).FirstOrDefault());
                        if (index != -1)
                        {
                            ReturnedStopLossOrderCollection.RemoveAt(index);
                        }
                    }
                }
            }


            //ReturnedStopLossOrderCollection.Add(objReturnedOrderModel);
        }