private void AsignarTareaEjecucion(List <SP_BarquillaBuscarInformacionEnSeccion_Result> infoBarquillaSeccion, Maquinas maquina, string codigoEtiqueta) { if (infoBarquillaSeccion.Any()) { BusEventos.TareasCargando(); var idsOrden = infoBarquillaSeccion.Select(x => x.IdOrden); var idsOrdenDistinto = idsOrden.Distinct(); if (idsOrden.Count() != idsOrdenDistinto.Count()) { // multiOperacion BusEventos.TareasCargadas(); } else { var idsTareas = infoBarquillaSeccion.Select(x => x.IdTarea.Value).Distinct().ToList(); var control = BuscarControl(infoBarquillaSeccion.First().IdOperacion, maquina); // bd BackgroundWorker bwActualizarCola = new BackgroundWorker(); List <MaquinasColasTrabajo> cola = new List <MaquinasColasTrabajo>(); bwActualizarCola.DoWork += (se, ev) => { cola = Insert.ActualizarColaTrabajo(codigoEtiqueta, idsTareas, infoBarquillaSeccion.First().Agrupacion ?? 0, maquina.ID, Store.OperarioEjecucion.Id, infoBarquillaSeccion.Sum(x => x.Cantidad), infoBarquillaSeccion.First().Talla); }; bwActualizarCola.RunWorkerCompleted += (se, ev) => { maquina.AsignarColaTrabajo(cola); BusEventos.TareasCargadas(); }; bwActualizarCola.RunWorkerAsync(); // mqtt MqttAsociarBarquilla(infoBarquillaSeccion, maquina); } } }