Exemplo n.º 1
0
        // This callback is what typically message callback looks like
        // Processes messages that are important to Plaza-2 datastream lifecycle
        private static int MessageHandlerTools(Connection conn, Listener listener, Message msg)
        {
            try
            {
                if (msg.Type == MessageType.MsgStreamData)
                {
                    StreamDataMessage replmsg = (StreamDataMessage)msg;
                    fut_sess_contents tool    = new fut_sess_contents(replmsg.Data);
                    int id = tool.isin_id;

                    var oldData = APIMongo.GetToolsById(id).Result;
                    if (oldData == null)
                    {
                        var data = new DataTools {
                            Id = id, Name = tool.isin
                        };
                        APIMongo.SetTools(data.ToBsonDocument());
                    }
                }

                return(0);
            }
            catch (CGateException e)
            {
                return((int)e.ErrCode);
            }
        }
Exemplo n.º 2
0
        private static int MessageHandlerGlass(Connection conn, Listener listener, Message msg)
        {
            try
            {
                if (msg.Type == MessageType.MsgStreamData)
                {
                    //APIMongo.Dell();

                    StreamDataMessage replmsg = (StreamDataMessage)msg;
                    orders_aggr       glass   = new orders_aggr(replmsg.Data);
                    int id = glass.isin_id;

                    if (glass.volume == 0 || glass.price_scale == 0)
                    {
                        return(0);
                    }

                    var data = APIMongo.GetGlassById(id).Result;

                    Glass gl = new Glass();
                    gl.Price = glass.price_scale;
                    gl.Volum = glass.volume;
                    gl.Dir   = glass.dir;

                    if (data == null)
                    {
                        data    = new DataGlass();
                        data.Id = id;
                        data.ArrayGlass.Add(gl);

                        APIMongo.SetGlass(data.ToBsonDocument());
                    }
                    else
                    {
                        const int maxElem      = 50;
                        int       countElement = data.ArrayGlass.Count;

                        if (countElement == maxElem)
                        {
                            data.ArrayGlass.RemoveAt(0);
                        }

                        data.ArrayGlass.Add(gl);

                        APIMongo.UpdateGlass(data);
                    }
                }

                return(0);
            }
            catch (CGateException e)
            {
                return((int)e.ErrCode);
            }
        }
Exemplo n.º 3
0
        private static int MessageHandlerCandles(Connection conn, Listener listener, Message msg)
        {
            try
            {
                if (msg.Type == MessageType.MsgStreamData)
                {
                    StreamDataMessage replmsg = (StreamDataMessage)msg;
                    common            com     = new common(replmsg.Data);
                    int id = com.isin_id;

                    var dataTik = APIMongo.GetCandlesTikById(id, ElementMongo.NameTableCandlesOnTik).Result;

                    if (com.price_scale > 0)
                    {
                        if (dataTik == null)
                        {
                            DataCandlesTik data = new DataCandlesTik();
                            data.Id = id;
                            data.ArrayCandles.Add(com.price_scale);

                            APIMongo.SetCandles(data.ToBsonDocument(), ElementMongo.NameTableCandlesOnTik);
                        }
                        else
                        {
                            int countElement = dataTik.ArrayCandles.Count;

                            if (dataTik.ArrayCandles[countElement - 1] != com.price_scale)
                            {
                                dataTik.ArrayCandles.Add(com.price_scale);
                                dataTik.ArrayMax.Add(com.max_price_scale);
                                dataTik.ArrayMin.Add(com.min_price_scale);
                                dataTik.ArrayTime.Add(com.deal_time);

                                APIMongo.UpdateCandlesTik(dataTik, ElementMongo.NameTableCandlesOnTik);
                            }
                        }
                    }


                    var dataDay = APIMongo.GetCandlesDayById(id, ElementMongo.NameTableCandlesOnDays).Result;

                    if (com.close_price_scale == 0)
                    {
                        return(0);
                    }

                    Price price;

                    price.Max   = com.max_price_scale;
                    price.Min   = com.min_price_scale;
                    price.Open  = com.open_price_scale;
                    price.Close = com.close_price_scale;
                    price.Time  = com.deal_time;

                    if (dataDay == null)
                    {
                        dataDay = new DataCandlesDay();

                        dataDay.Id = id;
                        dataDay.ArrayPrices.Add(price);

                        APIMongo.SetCandles(dataDay.ToBsonDocument(), ElementMongo.NameTableCandlesOnDays);
                    }
                    else
                    {
                        dataDay.ArrayPrices.Add(price);

                        APIMongo.UpdateCandlesDay(dataDay, ElementMongo.NameTableCandlesOnDays);
                    }
                }

                return(0);
            }
            catch (CGateException e)
            {
                return((int)e.ErrCode);
            }
        }
Exemplo n.º 4
0
        public ActionResult TotalInfo()
        {
            ViewBag.List = APIMongo.GetTools();

            return(View());
        }