Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }