public List <Turno> BuscarMejoresTurnos(List <Turno> turnosDisponibles, SolicitudAsistenciaTecnica solicitud) { var entradas = _cola.ObtenerEntradas(); var cola = new ColaTurnos(new ColaTurnoId(1), entradas); turnosDisponibles.Select(t => new EntradaCola(t, solicitud)) .ToList() .ForEach(e => cola.Agregar(e)); cola.Repriorizar(); var turnos = cola.ExtraerTurnos(solicitud); _cola.GuardarCola(cola); return(turnos); }
public void GuardarCola(ColaTurnos colaTurnos) { var lookup = colaTurnos.Entradas .GroupBy(e => e.Id.AsInt() == 0) .ToDictionary(n => n.Key, ne => ne.ToList()); var hayNuevos = lookup.TryGetValue(true, out var nuevos); var hayParaactualizar = lookup.TryGetValue(false, out var actualizar); string consulta = ""; if (hayNuevos) { consulta += GuardarNuevos(nuevos); } if (hayParaactualizar) { consulta += ActualizarExistentes(actualizar); } if (consulta.Length != 0) { _accesoDatos.Escribir(consulta, null); } }