예제 #1
0
        private void LoginExterno(string msg, string topicRecibido, Topic topic)
        {
            try
            {
                Operarios o = JsonConvert.DeserializeObject <Operarios>(msg);
                if (o == null)
                {
                    Log.Write(new Exception("Operario recibido nulo " + msg));
                }
                else
                {
                    Store.Operarios.Clear();
                    Store.Operarios.Add(o);
                    BusEventos.OperarioEntra(o);

                    Application.Current.Dispatcher.Invoke((Action) delegate
                    {
                        new Aviso(string.Format("¡{0}!", Horario.CalcularSaludoActual()), hablar: true).Show();
                        NavegacionEventos.CargarNuevaPagina(NavegacionEventos.PaginaTarea);
                    });
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
        private void btOk_Click(object sender, RoutedEventArgs e)
        {
            if (this.CodigoOperario.Length > 0)
            {
                Operarios o = Select.BuscarOperarioPorCodigo(this.CodigoOperario.Trim());
                if (o != null)
                {
                    if (!Store.Operarios.Any(x => x.Id == o.Id))
                    {
                        new Aviso(string.Format("¡{0}!", Horario.CalcularSaludoActual()), hablar: true).Show();

                        Store.Operarios.Clear();
                        Store.Operarios.Add(o);
                        BusEventos.OperarioEntra(o);
                        if (Store.Bancada.IdHermano != null)
                        {
                            ClienteMQTT.Publicar(string.Format("/puesto/loginHermano/{0}", Store.Bancada.IdHermano), JsonConvert.SerializeObject(o, new JsonSerializerSettings
                            {
                                ContractResolver           = new CustomResolver(),
                                PreserveReferencesHandling = PreserveReferencesHandling.None,
                                ReferenceLoopHandling      = ReferenceLoopHandling.Ignore,
                                Formatting = Formatting.Indented
                            }), 2);
                        }

                        NavegacionEventos.CargarNuevaPagina(NavegacionEventos.PaginaTarea);
                    }
                }
                this.CodigoOperario = "";
                Notifica("CodigoOperario");
            }
        }