private void BotonTaxiCancelar_Click(object sender, RoutedEventArgs e) { TexBoxEstadoViaje.Text = "cancelando el Viaje...."; EncuestaFlota creaViaje = new EncuestaFlota(); temporizador.Stop(); string idviajeCancelar = IdviajeActual; string url = "http://" + PuertoServerAPI + "/api/Flota/EstadoViaje/Cancelar/" + idviajeCancelar; string respuestaCancelacion = creaViaje.EncuestaHttp(url, "GET"); /////CANCELO EL VIAJE ACTUAL Y ACTUALIZO LA BASE DE DATOS. TexBoxEstadoViaje.Text = respuestaCancelacion; TexBoxEstadoViaje.Text = "VIAJE CANSELADO"; MessageBox.Show("EL VIAJE YA HA SIDO CANCELADO"); }
/// <summary> /// CÓDIGO PARA SOLICITAR UN CONDUCTOR EN ESPECÍFICO AL SERVIDOR Y CREAR LA CLASE VIAJE. /// </summary> private void BotonTaxi_Click(object sender, RoutedEventArgs e) { TexBoxEstadoViaje.Text = "SOLICITANDO VIAJE..."; int conductorseleccionado = listBoxConductores.SelectedIndex; //veo que conductor fue seleccionado string[] ides = IdConductores; string idchofer = ides[conductorseleccionado]; string tarifaviaje = PrecioViaje.ToString(); EncuestaFlota creaViaje = new EncuestaFlota(); Viaje datoViaje = new Viaje() { origen = DireccionOrigenViaje, destino = DireccionDestinoViaje, distancia = DistanciaViaje, horainicio = HoraInicioViaje, horafinal = HoraInicioViaje, tarifa = tarifaviaje, IdConductor = idchofer, IdCliente = IdCliente, estadoViaje = "solicitado", }; string datos = JsonConvert.SerializeObject(datoViaje, Formatting.Indented); string respuestaViaje = ServicioFlota.PostRequest("http://" + PuertoServerAPI + "/api/Flota/registrarViaje", datos); IdviajeActual = respuestaViaje; ///salvo el id de viaje. int contadorintentos = 0; bool continuar = true; temporizador.Interval = new TimeSpan(0, 0, 2); temporizador.Tick += (s, a) => // Temporizador que me detecta cuando un viaje es iniciado o rechazado. { contadorintentos++; string url = "http://" + PuertoServerAPI + "/api/Flota/EstadoViaje/" + respuestaViaje; char[] caracterdelete = { '"' }; ///para quitar los corchetes a la respuesta string estado = creaViaje.EncuestaHttp(url, "GET"); /////envio un get para obtener información del viaje actual. string estados = estado.Trim(caracterdelete); EstadoViajeActual = estados; switch (estados) { case "cancelado": TexBoxEstadoViaje.Text = "VIAJE CANSELADO"; MessageBox.Show("EL VIAJE YA HA SIDO CANCELADO"); continuar = false; temporizador.Stop(); break; case "aceptado": TexBoxEstadoViaje.Text = "EL CONDUCTOR ESTÁ EN CAMINO"; continuar = true; break; case "rechazado": TexBoxEstadoViaje.Text = "SOLICITUD RECHAZADA"; MessageBox.Show("SOLICITUD RECHAZADA"); continuar = false; temporizador.Stop(); break; case "iniciado": TexBoxEstadoViaje.Text = "EL VIAJE SE HA INICIADO"; MessageBox.Show("EL VIAJE SE HA INICIADO"); //temporizador.Interval = new TimeSpan(0, 0 , TiempoViajeActual); ///Si el viaje ha iniciado deja el tiempo de proxima encuesta al tiempor estimado del viaje para volver a comprobar el estado del viaje y no sobrecargar al servidor. continuar = true; temporizador.Stop(); break; case "finalizado": TexBoxEstadoViaje.Text = "EL VIAJE HA FINALIZADO"; MessageBox.Show("EL VIAJE HA FINALIZADO"); continuar = false; ClientePuntuacion clientePuntuacion = new ClientePuntuacion(respuestaViaje); clientePuntuacion.Visibility = Visibility.Visible; Visibility = Visibility.Collapsed; temporizador.Stop(); break; default: if (contadorintentos >= 10) { //TODO: DISMINUIR TIEMPO DEL TIMER //TODO: HAY QUE BORRAR DE LA BASE DE DATOS TexBoxEstadoViaje.Text = "SU SOLICITUD NO HA SIDO CONTESTADA"; //TODO: HAY QUE BORRAR DE LA BASE DE DATOS PARA QUE NO DE CONFLICTO EN FUTUROS PEDIDOS MessageBox.Show("SU SOLICITUD NO HA SIDO CONTESTADA"); if ((IdviajeActual != null) & (EstadoViajeActual != "iniciado")) { TexBoxEstadoViaje.Text = "cancelando el Viaje ...."; string respuestacancelacion = ServicioFlota.CancelarViajesPendientes(temporizador, IdviajeActual, PuertoServerAPI); TexBoxEstadoViaje.Text = respuestacancelacion; TexBoxEstadoViaje.Text = "VIAJE CANCELADO"; IdviajeActual = null; } continuar = false; temporizador.Stop(); } break; } // DatosTarifa.Text = estado; //TODO QUITAR AL TERMINAR. }; contadorintentos = 0; if (continuar == true) { temporizador.Start(); } else { temporizador.Stop(); } }
private void ButtonBuscar_Click(object sender, RoutedEventArgs e) ///////////coge todos datos que se encuentran en los elementos de la ventana y se lo envía al servidor Api mediante un metodo POST que se encuentra en la carpeta servicios clase flota. { TexBoxEstadoViaje.Text = "BUSCANDO CONDUCTORES CERCA ....."; EncuestaFlota encuesta = new EncuestaFlota(); //objeto que contendrá los datos a encuestar. ///obtengo datos de la ventana/// try { string direccionOrigen = TexBoxOrigen.Text; // se guarda en variable para luego enviarlo a here mediante esta variable encuesta.Origen = direccionOrigen; DireccionOrigenViaje = direccionOrigen; string direccionDestino = TexBoxDestino.Text; encuesta.Destino = direccionDestino; DireccionDestinoViaje = direccionDestino; encuesta.ReservaAhora = ReservarAhora_Value; ///se envía tipo bool encuesta.Fumadores = Fumadores_Value.ToString(); //se envía tipo string encuesta.Mascotas = Mascotas_Value.ToString(); //se envia tipo string encuesta.Plazas = ComboBoxPlazas.SelectedItem.GetHashCode().ToString(); // encuesta.Pago = ComboBoxPago.SelectedItem.ToString(); ///obtener las coordenadas del origen para enviarlas al servidor y poder encontrar chofer serca. CoordenadasOrigen = ServicioFlota.Direccion_CordenadasHere(direccionOrigen); CoordenadasDestino = ServicioFlota.Direccion_CordenadasHere(direccionDestino); if (CoordenadasOrigen == ",") { MessageBox.Show("Escriba una dirección de ORIGEN válida"); TexBoxOrigen.Text = ""; TexBoxOrigen.Focus(); } if (CoordenadasDestino == ",") { MessageBox.Show("Escriba una dirección de DESTINO válida"); TexBoxDestino.Text = ""; TexBoxDestino.Focus(); } if (ReservarAhora_Value == false) { int hora = ComboBoxHora.SelectedItem.GetHashCode(); int minutos = ComboBoxMinutos.SelectedItem.GetHashCode(); DateTime horactual = DateTime.Now; DateTime horasMinutos = new DateTime(horactual.Year, horactual.Month, horactual.Day, hora, minutos, 00); HoraInicioViaje = horasMinutos; encuesta.HoraSalida = horasMinutos; } else { DateTime horactual = DateTime.Now; DateTime horasMinutos = new DateTime(horactual.Year, horactual.Month, horactual.Day, horactual.Hour, horactual.Minute, horactual.Second); encuesta.HoraSalida = horasMinutos; HoraInicioViaje = horasMinutos; TexBoxOrigen.Focus(); } encuesta.CoordenadasOrigen = CoordenadasOrigen; encuesta.CoordenadasDestino = CoordenadasDestino; } catch (Exception) { MessageBox.Show("Introduzca todos los datos correctamente por favor"); TexBoxOrigen.Focus(); } ///introducido todo los valores de la ventana lo serializo y lo envío mediante la clase Flota definida en la carpeta servicios. string datos = JsonConvert.SerializeObject(encuesta, Formatting.Indented); string respuesta = ServicioFlota.PostRequest("http://" + PuertoServerAPI + "/api/Flota", datos); char[] caracterdelete = { '[', ']' }; ///para quitar los corchetes a la respuesta string cochesRespuesta = respuesta.Trim(caracterdelete); IdConductores = cochesRespuesta.Split(','); //separar la respuesta por las comas. InfoConductores agregaconductor = new InfoConductores(); //instancia para salvar los datos de los conductores List <InfoConductores> listainfo = new List <InfoConductores>(); try { listBoxConductores.Items.Clear(); for (int id = 0; id < IdConductores.Length; id++) ///obtengo todos los conductores sercas y aptos para el servicio { string url = "http://" + PuertoServerAPI + "/api/InfoConductores/" + IdConductores[id]; string infoconductor = encuesta.EncuestaHttp(url, "GET"); var respuestajson = JObject.Parse(infoconductor); agregaconductor.NombreConductor = (string)respuestajson.SelectToken("NombreConductor"); agregaconductor.DniConductor = (string)respuestajson.SelectToken("DniConductor"); agregaconductor.MatriculaCoche = (string)respuestajson.SelectToken("MatriculaCoche"); agregaconductor.ModeloCoche = (string)respuestajson.SelectToken("ModeloCoche"); agregaconductor.ColorCoche = (string)respuestajson.SelectToken("ColorCoche"); agregaconductor.DistintivoAmbiental = (string)respuestajson.SelectToken("DistintivoAmbiental"); agregaconductor.PuntuacionConductor = (string)respuestajson.SelectToken("PuntuacionConductor"); listainfo.Add(agregaconductor); listBoxConductores.Items.Add("\n Nombre Chofer: " + agregaconductor.NombreConductor + "\n DNI: " + agregaconductor.DniConductor + "\n Matricula: " + agregaconductor.MatriculaCoche + "\n Modelo Coche: " + agregaconductor.ModeloCoche + "\n Color Coche: " + agregaconductor.ColorCoche + "\n Distintivo Ambiental: " + agregaconductor.DistintivoAmbiental + "\n Puntuación: " + agregaconductor.PuntuacionConductor); listBoxConductores.SelectedIndex = id; } ListaInfoConductores = listainfo; } catch (Exception) { MessageBox.Show("NO HAY CONDUCTORES CON ESAS CARACTERÍSTICAS Y UBICACIONES"); } }