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) }); }
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 }); }
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() }); }