private void TimerEventoFichaje_Tick(object sender, EventArgs e) { TbCodigo.Focus(); EventoFichajeAsociacion evento = null; try { if (colaEventosFichaje.Count == 0 || SesionManager.Sesion.Operario == null) { return; } evento = colaEventosFichaje.Dequeue(); if (evento != null) { //asociar var maquina = Store.Bancada.Maquinas.FirstOrDefault(x => x.CodigoEtiqueta == evento.CodigoMaquina); if (maquina != null) { var infoBarquillaSeccion = selectBarquillas.BuscarInformacionBarquilla(evento.CodigoBarquilla, maquina.CodSeccion); if (infoBarquillaSeccion.Any()) { var idsOrden = infoBarquillaSeccion.Select(x => x.IdOrden); var idsOrdenDistinto = idsOrden.Distinct(); if (idsOrden.Count() != idsOrdenDistinto.Count()) { // multiOperacion } else { var idsTareas = infoBarquillaSeccion.Select(x => x.IdTarea.Value).Distinct().ToList(); evento.Control = BuscarControl(infoBarquillaSeccion.First().IdOperacion, maquina); // bd BackgroundWorker bwActualizarCola = new BackgroundWorker(); List <MaquinasColasTrabajo> cola = new List <MaquinasColasTrabajo>(); bwActualizarCola.DoWork += (se, ev) => { cola = addColaTrabajo.ActualizarColaTrabajo(evento.CodigoBarquilla, idsTareas, infoBarquillaSeccion.First().Agrupacion ?? 0, maquina.ID, SesionManager.Sesion.Operario.Id, infoBarquillaSeccion.Sum(x => x.Cantidad)); }; bwActualizarCola.RunWorkerCompleted += (se, ev) => { maquina.AsignarColaTrabajo(cola); }; bwActualizarCola.RunWorkerAsync(); // mqtt MqttAsociarBarquilla(infoBarquillaSeccion, maquina); } } } } } catch (Exception ex) { //MessageBox.Show(ex.Message); colaEventosFichaje.Enqueue(evento); Log.Write(ex); } }
private void Fichajes_OnFichajeAsociacion(object sender, EventoFichajeAsociacion e) { try { Store.EventosFichajes.Add(e); this.colaEventosFichaje.Enqueue(e); } catch (Exception ex) { Log.Write(ex); } }