Пример #1
0
        public SaltarTurnoResponse Procesar(SaltarTurnoRequest req)
        {
            var turnero = _repository.Turneros.Include(t => t.Turnos).FirstOrDefault(t => t.Id == req.IdTurnero);

            if (turnero == null)
            {
                throw new TurneroNotFoundException("Turnero no encontrado");
            }

            var turnoEnLlamada = turnero.LlamarSiguiente();

            _repository.SaveChanges();

            return(new SaltarTurnoResponse()
            {
                IdTurnero = turnero.Id,
                IdPropietario = turnero.IdPropietario,
                CantidadEnEspera = turnero.CantidadEnEspera(),
                NumeroEnLlamada = turnoEnLlamada?.Numero,
                Concepto = turnero.Concepto,
                Ciudad = turnero.Direccion.Ciudad,
                Calle = turnero.Direccion.Calle,
                Numero = turnero.Direccion.Numero,
                QrTurnero = _qrProvider.Encode(turnero.Id.ToString()),
                CantidadMaxima = turnero.CantidadMaxima,
                Latitud = turnero.Ubicacion.Latitud,
                Longitud = turnero.Ubicacion.Longitud
            });
        }
        public DetallarTurnoResponse Procesar(DetallarTurnoRequest request)
        {
            var turnero = _repository.Turneros.Include(t => t.Turnos).FirstOrDefault(t => t.Id == request.IdTurnero);

            if (turnero == null)
            {
                throw new TurneroNotFoundException($"{request.IdTurnero}");
            }

            var turno = turnero.Turno(request.IdTurno);

            if (turno == null)
            {
                throw new TurnoNotFoundException($"{request.IdTurno}");
            }

            return(new DetallarTurnoResponse()
            {
                IdTurnero = turnero.Id,
                IdTurno = turno.Id,
                NumeroTurno = turno.Numero,
                Concepto = turnero.Concepto,
                Ciudad = turnero.Direccion.Ciudad,
                Calle = turnero.Direccion.Calle,
                Numero = turnero.Direccion.Numero,
                Latitud = turnero.Ubicacion.Latitud,
                Longitud = turnero.Ubicacion.Longitud,
                QrTurno = _qrProvider.Encode(turno.Id.ToString()),
                EsperaEstimada = turnero.EsperaParaTurno(turno.Id)
            });
        }
Пример #3
0
        public DetallarTurneroResponse Procesar(DetallarTurneroRequest req)
        {
            var turnero = _repository.Turneros.Include(t => t.Turnos).Include(t => t.Files).FirstOrDefault(t => t.Id == req.IdTurnero);

            if (turnero == null)
            {
                throw new TurneroNotFoundException();
            }

            var turnoEnLlamada = turnero.TurnoEnLlamada();

            return(new DetallarTurneroResponse()
            {
                IdTurnero = turnero.Id,
                IdPropietario = turnero.IdPropietario,
                CantidadEnEspera = turnero.CantidadEnEspera(),
                NumeroTurnoEnLlamada = turnoEnLlamada?.Numero,
                Concepto = turnero.Concepto,
                Ciudad = turnero.Direccion.Ciudad,
                Calle = turnero.Direccion.Calle,
                Numero = turnero.Direccion.Numero,
                QrTurnero = _qrProvider.Encode(turnero.Id.ToString()),
                CantidadMaxima = turnero.CantidadMaxima,
                Latitud = turnero.Ubicacion.Latitud,
                Longitud = turnero.Ubicacion.Longitud,
                Files = turnero.Files
            });
        }
Пример #4
0
        public AtenderTurnoResponse Procesar(AtenderTurnoRequest request)
        {
            int idturnoEnQr;

            try
            {
                idturnoEnQr = int.Parse(request.QrData);
            }
            catch
            {
                throw new InvalidQrException("No contiene datos en el formato correcto");
            }

            var turnero = _repository.Turneros.Include(t => t.Turnos).Include(t => t.Files).FirstOrDefault(t => t.Id == request.IdTurnero);

            if (turnero == null)
            {
                throw new TurneroNotFoundException();
            }

            var turnoEnQr = turnero.Turno(idturnoEnQr);

            if (turnoEnQr == null)
            {
                throw new InvalidQrException("No contiene data de un turno");
            }

            var turnoEnLlamada = turnero.TurnoEnLlamada();


            return(new AtenderTurnoResponse
            {
                IdTurnero = turnero.Id,
                IdPropietario = turnero.IdPropietario,
                CantidadEnEspera = turnero.CantidadEnEspera(),
                NumeroTurnoEnLlamada = turnoEnLlamada?.Numero,
                Concepto = turnero.Concepto,
                Ciudad = turnero.Direccion.Ciudad,
                Calle = turnero.Direccion.Calle,
                Numero = turnero.Direccion.Numero,
                QrTurnero = _qrProvider.Encode(turnero.Id.ToString()),
                CantidadMaxima = turnero.CantidadMaxima,
                Latitud = turnero.Ubicacion.Latitud,
                Longitud = turnero.Ubicacion.Longitud,
                NumeroTurnoEnQr = turnoEnQr.Numero,
                Files = turnero.Files.Select(f => f.Path).ToList()
            });
        }