private async void initFirebase() { await Monitorizacion.getListMonitorizacion(Monitorizacion.empresaLiege); await Monitorizacion.getListMonitorizacion(Monitorizacion.empresaSevilla); Func <Task <string> > authToken = async delegate() { return("XQsDE173GieFhbMUUs2t2OD5eUwZFjjrEsAYbq6B"); }; var firebase = new FirebaseClient(@"https://flickering-fire-4088.firebaseio.com/", authToken); //var consulta = await firebase.Child(@"Pedidos") // .OnceAsync<Dictionary<string,PedidoFireBase>>(); var items = firebase .Child(@"Pedidos")//.OnceAsync<PedidoFireBase>(); .AsObservable <Dictionary <string, PedidoFireBase> >() .Subscribe(OnItemMessage); }
//Comprobamos que la notificacion de cambio del estado del pedido es diferente a la inicial y así mandar la notificación private async void OnItemMessage(FirebaseEvent <Dictionary <string, PedidoFireBase> > message) { String empresa; if (message.Key.Contains("Liege")) { empresa = Monitorizacion.empresaLiege; } else { empresa = Monitorizacion.empresaSevilla; } foreach (KeyValuePair <string, PedidoFireBase> item in message.Object) { string pedMessage = item.Value.codPedido.ToString(); string estadoMessage = item.Value.descripcion.ToString(); if (Monitorizacion.listMonitorizacionLieja != null || Monitorizacion.listMonitorizacionSevilla != null) { var pedido = Monitorizacion.listMonitorizacionLieja.Where(q => q.codigoPedido.Equals(item.Value.codPedido)).FirstOrDefault(); if (pedido == null) { pedido = Monitorizacion.listMonitorizacionSevilla.Where(q => q.codigoPedido.Equals(item.Value.codPedido)).FirstOrDefault(); } if (pedido != null) { if (pedido.Estado != item.Value.estado) { await Monitorizacion.getListMonitorizacion(empresa); notificar(item.Value); } } else { await Monitorizacion.getListMonitorizacion(empresa); notificar(item.Value); } } //if (Monitorizacion.listMonitorizacion.Count > 0) //{ // for (int i = 0; i < Monitorizacion.listMonitorizacion.Count; i++) // { // string pedidoListado = Monitorizacion.listMonitorizacion[i].codigoPedido.ToString(); // if (item.Value.codPedido.Equals(Monitorizacion.listMonitorizacion[i].codigoPedido)) // { // string estadoListado = Monitorizacion.listMonitorizacion[i].Estado.ToString(); // if (!Monitorizacion.listMonitorizacion[i].Estado.Equals(item.Value.descripcion) && (message.EventType == FirebaseEventType.InsertOrUpdate)) // { // notificar(item.Value); // } // } // } //} } }
protected async override void OnPostCreate(Bundle savedInstanceState) { base.OnPostCreate(savedInstanceState); this.drawerToggle.SyncState(); await Monitorizacion.updateListMonitorizacion(); }
private async void getListadoSevilla() { listMonitorizacionSevilla = await Monitorizacion.getListMonitorizacion(Monitorizacion.empresaSevilla); }
private async void getListadoLiege() { listMonitorizacionLiege = await Monitorizacion.getListMonitorizacion(Monitorizacion.empresaLiege); }