protected void mContratoDeServicioThreadCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { MessageBox.Show(String.Format("Ocurrió un error en el hilo de ServiceContract: {0}", e.Error.Message)); } else { if (mEstado == EstadoRed.Conectado) { mCanalP2PThreadBGWorker = null; mContratoDeServicio = null; if (mPseudoServidorAudioHttpListener == null && mPseudoServidorVideoHttpListener == null) { Utilidades.SetTextoTextBox(TextBoxNombreUsuario, ""); Utilidades.SetTextoTextBox(TextBoxNombreRed, ""); Utilidades.SetTextoTextBox(TextBoxPassword, ""); } } else if (mEstado == EstadoRed.UsuarioFallido) { Utilidades.SetTextoTextBox(TextBoxNombreUsuario, ""); } mEstado = EstadoRed.Desconectado; Utilidades.SetTextoLabel(LabelValorEstado, "Desconectado"); Utilidades.SetEstadoActivadoContentControl(lblTitulo, false); Utilidades.SetEstadoActivadoContentControl(TextBoxNombreUsuario, true); Utilidades.SetEstadoActivadoContentControl(TextBoxNombreRed, true); Utilidades.SetEstadoActivadoContentControl(TextBoxPassword, true); Utilidades.SetEstadoActivadoContentControl(BotonConectar, true); } }
protected void CerrarConexion() { if (null != mContratoDeServicio) { mContratoDeServicio.CerrarProceso(); mContratoDeServicio = null; } if (null != mPseudoServidorVideoHttpListener) { mPseudoServidorVideoHttpListener.Stop(); } if (null != mPseudoServidorAudioHttpListener) { mPseudoServidorAudioHttpListener.Stop(); } if (null != mPseudoServidorVideoHttpListener) { mPseudoServidorVideoHttpListener.Salir(); } if (null != mPseudoServidorAudioHttpListener) { mPseudoServidorAudioHttpListener.Salir(); } if (null != mCanalP2PThreadBGWorker) { mCanalP2PThreadBGWorker.CancelAsync(); } if (mEstado == EstadoRed.UsuarioFallido) { Utilidades.SetTextoTextBox(TextBoxNombreUsuario, ""); } else { Utilidades.SetTextoTextBox(TextBoxNombreUsuario, ""); Utilidades.SetTextoTextBox(TextBoxNombreRed, ""); Utilidades.SetTextoTextBox(TextBoxPassword, ""); } Utilidades.SetEstadoActivadoContentControl(TextBoxNombreUsuario, true); Utilidades.SetEstadoActivadoContentControl(TextBoxNombreRed, true); Utilidades.SetEstadoActivadoContentControl(TextBoxPassword, true); }
private void mServiceContractThread(object sender, DoWorkEventArgs doWorkArgs) { mContratoDeServicio = new ContratoDeServicio(); if (false == mContratoDeServicio.IniciarCanalP2P(Utilidades.GetTextoTextbox(TextBoxNombreUsuario), Utilidades.GetTextoTextbox(TextBoxNombreRed), Utilidades.GetTextoTextbox(TextBoxPassword))) { CerrarConexion(); } mContratoDeServicio.EstadoRedChanged += new EventHandler <EstadoRedChangedEventArgs>(MiEstadoRedChanged); mContratoDeServicio.AyudanteChat.ChatChanged += new EventHandler <ChatChangedEventArgs>(Chat_ChatChanged); mContratoDeServicio.AyudanteImagen.ImagenChanged += new EventHandler <ImagenChangedEventArgs>(Imagen_ImagenChanged); mContratoDeServicio.AyudanteFichero.FicheroChanged += new EventHandler <FicheroChangedEventArgs>(Fichero_FicheroChanged); mContratoDeServicio.AyudanteDescarga.DescargaChanged += new EventHandler <DescargaChangedEventArgs>(Descarga_DescargaChanged); if (Audio != null) { mContratoDeServicio.AyudanteAudio.StreamChanged += new EventHandler <StreamChangedEventArgs>(mContratoDeServicio_StreamAudioListener); mPseudoServidorAudioHttpListener = new PseudoServidorHttpListener(Utilidades.GetTextoTextbox(TextBoxNombreUsuario) + Utilidades.GetTextoTextbox(TextBoxNombreRed) + "/audio/", AudioBGWorkerThreadFinished, MensajeDeEstadoAudio, mContratoDeServicio.AyudanteAudio.IniciarStream, mContratoDeServicio.AyudanteAudio.TrozoStreamEnviado); } if (Video != null) { mContratoDeServicio.AyudanteVideo.StreamChanged += new EventHandler <StreamChangedEventArgs>(mContratoDeServicio_StreamVideoListener); mPseudoServidorVideoHttpListener = new PseudoServidorHttpListener(Utilidades.GetTextoTextbox(TextBoxNombreUsuario) + Utilidades.GetTextoTextbox(TextBoxNombreRed) + "/video/", VideoBGWorkerThreadFinished, MensajeDeEstadoVideo, mContratoDeServicio.AyudanteVideo.IniciarStream, mContratoDeServicio.AyudanteVideo.TrozoStreamEnviado); } while ((mPseudoServidorAudioHttpListener != null && mPseudoServidorVideoHttpListener != null) && (!(mPseudoServidorAudioHttpListener.EstaPseudoServidorPreparado || mPseudoServidorVideoHttpListener.EstaPseudoServidorPreparado))) { System.Threading.Thread.Sleep(0); } if (mPseudoServidorAudioHttpListener != null && mPseudoServidorVideoHttpListener != null) { while (mEstado == EstadoRed.Conectando) { System.Threading.Thread.Sleep(100); progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { progressBarEstadoRed.Value = ((progressBarEstadoRed.Value >= 100) ? 0 : progressBarEstadoRed.Value + 1); }); if (mCanalP2PThreadBGWorker.CancellationPending) { progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { progressBarEstadoRed.Value = 0; }); mCanalP2PThreadBGWorker = null; break; } } progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { progressBarEstadoRed.Value = 100; }); while (true) { System.Threading.Thread.Sleep(1000); if (mCanalP2PThreadBGWorker.CancellationPending) { progressBarEstadoRed.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart) delegate { progressBarEstadoRed.Value = 0; }); mCanalP2PThreadBGWorker = null; break; } } } else { mEstado = EstadoRed.UsuarioFallido; Utilidades.SetTextoLabel(lblValorEstado, "Desconectando..."); Utilidades.SetTextoTextBox(TextBoxNombreUsuario, "USUARIO FALLIDO - Por favor, espere unos segundos..."); CerrarConexion(); mContratoDeServicio = null; mCanalP2PThreadBGWorker = null; MessageBox.Show("Lo sentimos en este momento su Nombre de Usuario ya existe en la red.\n" + "\nPor favor, vuelva a intentarlo con un Nombre de Usuario distinto.", "Nombre de Usuario actualmente en uso.", MessageBoxButton.OK, MessageBoxImage.Error); } }