public IHttpActionResult responderSolicitud(RespuestaSolicitud respuesta)
        {
            //buscar solicitud
            if (respuesta.idSolicitud > 0)
            {
                solicitudes solicitud = db.solicitudes.Find(respuesta.idSolicitud);

                if (solicitud != null)
                {
                    if (respuesta.respuesta)
                    {
                        //solicitud es aceptada
                        carreras carrera = db.carreras.Find(solicitud.idCarrera);
                        taxistas taxista = db.taxistas.Find(respuesta.idTaxista);
                        if (carrera != null || taxista != null)
                        {
                            //buscar que la carrera no haya sido aceptada por nadie
                            if (carrera.idTaxista == null)
                            {
                                //ELIMINAR todas las demas solicitudes para esta carrera
                                var solicitudesCarrera = db.solicitudes.Where(x => x.idCarrera == carrera.idCarrera && x.idSolicitud != solicitud.idSolicitud);
                                db.solicitudes.RemoveRange(solicitudesCarrera);
                                                                
                                //aceptar solicitud
                                if (respuesta.idTaxista == solicitud.idTaxista)
                                {
                                    solicitud.idEstadoSolicitud = 41;   //aceptada;
                                    carrera.idTaxista = respuesta.idTaxista;
                                    carrera.fechaInicioCarrera = DateTime.Now;
                                    carrera.idEstado = 71;  //en curso
                                    db.Entry(solicitud).State = EntityState.Modified;

                                    string msj;
                                    //ClientesAPIController clientes = new ClientesAPIController();                                  

                                    //msj = clientes.getNotificacionesCliente((int)carrera.idCliente).ToString();
                                    List<notificacionCliente> notificaciones = clientes.getNotificaciones((int)carrera.idCliente);
                                    var json = JsonConvert.SerializeObject(notificaciones);
                                    Push envios = new Push(json);
                                    envios.EnviarClientes((int)carrera.idCliente);
                                }
                                else
                                {
                                    return BadRequest("Esta solicitud no fue hecha para usted");
                                }

                                //guardar cambios
                                try
                                {
                                    db.SaveChangesAsync();

                                    //creando notificacion para cliente
                                    clientes.crearNotificaciones(idCarrera: carrera.idCarrera);

                                    return Ok("Su solicitud ha sido aceptada");
                                }
                                catch(Exception e)
                                {
                                    return BadRequest("No se ha podido guardar cambios");
                                }
                            }
                            else
                            {
                                return BadRequest("Esta carrera ya esta siendo atendida");
                            }
                        }
                        else
                        {
                            return BadRequest("Esta carrera no existe");
                        }
                        
                    }
                    else  //solicitud es rechazada
                    {
                        solicitud.idEstadoSolicitud = 31;//Rechazada
                        db.Entry(solicitud).State = EntityState.Modified;

                        try
                        {
                            db.SaveChangesAsync();
                            return Ok("Solicitud rechazada");
                        }
                        catch
                        {
                            return BadRequest("No se ha podido guardar el cambio");
                        }
                    }
                }
                else
                {
                    return BadRequest("La solicitud no existe");
                }
            }
            else
            {
                return BadRequest("La solicitud no existe");
            }
        }