예제 #1
0
        private void ProcessRequest(string body)
        {
            var e = JsonConvert.DeserializeObject <Event>(body);

            foreach (var entry in e.Entries)
            {
                foreach (var item in entry.Items)
                {
                    if (item.Message != null && MessageReceived != null)
                    {
                        MessageEventArgs messageEventArgs = new MessageEventArgs()
                        {
                            Sender  = item.Sender.Id,
                            Message = item.Message
                        };

                        ThreadPool.QueueUserWorkItem(state => MessageReceived.Invoke(messageEventArgs));
                    }

                    if (item.Postback != null && PostbackReceived != null)
                    {
                        PostbackEventArgs postbackEventArgs = new PostbackEventArgs()
                        {
                            Sender   = item.Sender.Id,
                            Postback = item.Postback
                        };

                        ThreadPool.QueueUserWorkItem(state => PostbackReceived.Invoke(postbackEventArgs));
                    }
                }
            }
        }
예제 #2
0
 void Monitor_ContextMenuPostback(object sender, PostbackEventArgs e)
 {
     if (!Directory.Exists(QtreeFullPath))
     {
         return;
     }
     if (e.CommandArguments == "Info" && btInfo.Enabled)
     {
         ChangeState(QtreeEditorState.Info);
         ShowLeafInfo(e.Latitud, e.Longitud);
     }
     else if (e.CommandArguments == "ColorPick" && btPickColor.Enabled)
     {
         SelectColor(e.Latitud, e.Longitud);
     }
     else if (e.CommandArguments == "Lock" && btEdit.Enabled)
     {
         ToggleLock(e.Latitud, e.Longitud);
     }
     else if (e.CommandArguments == "Paint" && btEdit.Enabled)
     {
         using (var qtree = BaseQtree.Open(QtreeFullPath, Format))
         {
             var leaf = qtree.GetQLeaf(e.Latitud, e.Longitud);
             Monitor.AddGeometries(LayerGeocercas, GetPolygon(leaf));
         }
     }
 }
예제 #3
0
 private static void Bot_PostbackReceived(PostbackEventArgs e)
 {
     Console.WriteLine($"\nPOSTBACK:{e.Sender}:{e.Postback.Title}:{e.Postback.Payload}");
 }
예제 #4
0
 protected void MonitorContextMenuPostback(object sender, PostbackEventArgs e)
 {
 }
예제 #5
0
        private void Monitor_ContextMenuPostback(object sender, PostbackEventArgs e)
        {
            if (Mobile.Get() <= 0)
            {
                return;
            }
            var vehicle = DAOFactory.CocheDAO.FindById(Mobile.Get());

            if (vehicle.Dispositivo == null)
            {
                return;
            }

            var qtreeDir  = DAOFactory.DetalleDispositivoDAO.GetQtreeFileNameValue(vehicle.Dispositivo.Id);
            var qtreeType = DAOFactory.DetalleDispositivoDAO.GetQtreeTypeValue(vehicle.Dispositivo.Id);

            if (string.IsNullOrEmpty(qtreeType) || !Enum.IsDefined(typeof(QtreeFormats), qtreeType))
            {
                return;
            }

            var qtreeFormat = (QtreeFormats)Enum.Parse(typeof(QtreeFormats), qtreeType);

            qtreeDir = Path.Combine(qtreeFormat.Equals(QtreeFormats.Gte)
                                        ? Config.Qtree.QtreeGteDirectory
                                        : Config.Qtree.QtreeTorinoDirectory, qtreeDir);

            if (String.IsNullOrEmpty(qtreeDir) || !Directory.Exists(qtreeDir))
            {
                return;
            }

            var    leafs = new List <QLeaf>();
            double hres = 0, vres = 0;

            using (var qtree = BaseQtree.Open(qtreeDir, qtreeFormat))
            {
                var index = qtree.GetIndex(e.Latitud, e.Longitud);
                hres = qtree.HorizontalResolution;
                vres = qtree.VerticalResolution;
                for (var i = index.Y - 10; i < index.Y + 10; i++)
                {
                    for (var j = index.X - 10; j < index.X + 10; j++)
                    {
                        var latlon = qtree.GetCenterLatLon(new QIndex {
                            Y = i, X = j
                        });
                        var leaf = qtree.GetQLeaf(latlon.Latitud, latlon.Longitud);

                        if (leaf == null)
                        {
                            continue;
                        }


                        leafs.Add(leaf);
                    }
                }
            }
            var leafsParam = leafs.Count > 0
                            ? string.Join(",", leafs.Select(x => SerializeQtree(x, hres, vres)).ToArray())
                            : string.Empty;

            Monitor.ExecuteScript("processGeocercas( { \"qtree\": [" + leafsParam + "] });");
        }
예제 #6
0
 private void OnPostback(PostbackEventArgs obj)
 {
     Log($"Postback received {obj.Order}");
 }