Exemplo n.º 1
0
        private void AdicionarPedido(string key, DistribuidorFirebase pedido)
        {
            // Locations.Clear();

            try
            {
                if (!isVisible)
                {
                    Point p     = new Point(0.48, 0.96);
                    var   found = Camiones.FirstOrDefault(x => x.id == pedido.id);
                    if (found != null)
                    {
                        int i = Camiones.IndexOf(found);
                        Camiones[i] = pedido;

                        int y = Locations.IndexOf(Locations.FirstOrDefault(x => x.ID == pedido.id.ToString()));

                        Locations.RemoveAt(y);
                        var Pindistribuidor = new TKCustomMapPin
                        {
                            Image       = "camion",
                            Position    = new TK.CustomMap.Position((double)pedido.Latitud, (double)pedido.Longitud),
                            Anchor      = p,
                            ShowCallout = true,
                            ID          = pedido.id.ToString()
                        };
                        Locations.Add(Pindistribuidor);
                        //PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Locations"));
                    }
                    else
                    {
                        Camiones.Add(new DistribuidorFirebase()
                        {
                            id       = pedido.id,
                            Latitud  = pedido.Latitud,
                            Longitud = pedido.Longitud,
                        });
                        var Pindistribuidor = new TKCustomMapPin
                        {
                            Image       = "camion",
                            Position    = new TK.CustomMap.Position((double)pedido.Latitud, (double)pedido.Longitud),
                            Anchor      = p,
                            ShowCallout = true,
                            ID          = pedido.id.ToString()
                        };
                        Locations.Add(Pindistribuidor);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
        public async System.Threading.Tasks.Task <IHttpActionResult> PostDistribuidorAsync(Distribuidor distribuidor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            db.Distribuidor.Add(distribuidor);
            db.SaveChanges();


            #region FireBase

            var FirebaseUri = "https://elgas-f24e8.firebaseio.com/-LJVkHULelfySFjNF9-Q/Equipo-ElGas/Distribuidores.json";
            var USER_AGENT  = "firebase-net/1.0";

            var rutajson = new DistribuidorFirebase {
                id = distribuidor.IdDistribuidor, Latitud = 0, Longitud = 0
            };
            var json   = JsonConvert.SerializeObject(rutajson);
            var client = new HttpClient();
            var msg    = new HttpRequestMessage(new HttpMethod("Post"), FirebaseUri);
            msg.Headers.Add("user-agent", USER_AGENT);
            if (json != null)
            {
                msg.Content = new StringContent(
                    json,
                    UnicodeEncoding.UTF8,
                    "application/json");
            }

            var respuesta = await client.SendAsync(msg);

            var result = await respuesta.Content.ReadAsStringAsync();

            var idFirebase = JsonConvert.DeserializeObject <ResultFirbase>(result);

            Debug.Write(idFirebase.name);

            db.Entry(distribuidor).State = EntityState.Modified;

            distribuidor.FirebaseID = idFirebase.name;

            db.SaveChanges();


            #endregion


            return(Ok());
        }