//Constructor de petición al webservice //Se le pasa la url y el formato en que recibira los datos public Conecta() { //Estructura de protocolo para conexión segura ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; //Obtenemos la url donde se aloja el webservice RepositorySatApp DatosServidor = new RepositorySatApp(); var Datos_Comunicacion = DatosServidor.GetAll <Conexiones>(); if (Datos_Comunicacion != null) //Cuando se instala la app por primera vez la tabla Conexiones no existe y devuelve { if (Datos_Comunicacion.Count != 0) //Una vez que esta instalada la app ya existe la tabla conexiones, pero solo entrará cuando existan datos. { foreach (var l in Datos_Comunicacion) { Variables.ServerUrl = ("https://" + l.IP + ":" + l.Puerto + "/"); } //Parametros de conexión. Si el server requiere conexion segura obtiene un certificado Client = new HttpClient { BaseAddress = new Uri(Variables.ServerUrl) }; Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Client.Timeout = TimeSpan.FromSeconds(300); } } }
public PopupVarios(string _titulo) { InitializeComponent(); titulo = _titulo; RepositorySatApp database = new RepositorySatApp(); if (titulo.Equals("IVA")) { listado.ItemsSource = database.GetAll <Iva>(); } else if (titulo.Equals("FORMA_PAGO")) { listado.ItemsSource = database.GetAll <Forma_Pago>(); } database.CerrarConexion(); }
// Esta funcion permite enviar los partes cerrados al servidor public bool CompruebaTerminados() { bool resultado = false; List <SAT> sat; List <SAT_Lineas> lineas; List <SAT_Equipo> equipo; RepositorySatApp BBDD = new RepositorySatApp(); var valores = BBDD.GetAll <Valores_SAT>().FirstOrDefault(); if (valores != null) { Variables.ArticuloVarios = valores.SAT_ArticuloVarios; Variables.RevisaParte = valores.SAT_RevisarParteAPP; } if (Variables.RevisaParte == true) { sat = BBDD.SatRevisar <SAT>(); } else { sat = BBDD.SatCerrado <SAT>(); } if (sat.Count >= 1) { foreach (var parte in sat) { lineas = BBDD.LineasSatCerrado <SAT_Lineas>(parte.N_Parte); equipo = BBDD.EquipoSatCerrado <SAT_Equipo>(parte.Maquina); } resultado = true; } else { resultado = false; } return(resultado); }
// En el constructor se colocan los datos de servidor y puerto en caso de que existan, ademas de // la activación de algunos componentes public Configuracion() { InitializeComponent(); RepositorySatApp DatosServidor = new RepositorySatApp(); var Datos_Comunicacion = DatosServidor.GetAll <Conexiones>(); if (Variables.ConfImpresora == true) { Servidor.IsEnabled = false; Puerto.IsEnabled = false; BtnSincroniza.IsEnabled = false; BtnConfiguracion.IsEnabled = false; } if (Datos_Comunicacion != null) //Cuando se instala la app por primera vez la tabla Conexiones no existe y devuelve. { if (Datos_Comunicacion.Count != 0) //Una vez que esta instalada la app ya existe la tabla conexiones, pero solo entrará cuando existan datos. { Servidor.Text = Datos_Comunicacion[0].IP; Puerto.Text = Datos_Comunicacion[0].Puerto; BtnSincroniza.IsEnabled = true; BtnEliminaBBDD.IsEnabled = true; } } NavigationPage.SetHasBackButton(this, false); //Bluetooth = CrossBluetoothLE.Current; //Adaptador = CrossBluetoothLE.Current.Adapter; Lista = new ObservableCollection <IDevice>(); DispositivosLista.ItemsSource = Lista; DatosServidor.CerrarConexion(); }
private async void BtnLogin_Clicked(object sender, EventArgs e) { if (!Conexion.AccesoInternet())//Verifica la conexión a Internet { await DisplayAlert("Conexión", "No tienes conexión a Internet", "OK"); } else { try { if (!string.IsNullOrEmpty(Usuario.Text) && (!string.IsNullOrEmpty(Pass.Text))) { Conecta userPass = new Conecta(); lblLoadingText.Text = "Autentificando usuario..."; popupLoadingView.IsVisible = true; Variables.CodigoPersonal = Convert.ToInt32(Usuario.Text); Variables.ClavePersonal = Pass.Text; await logotipo.RotateTo(360, 5000); if (CargarDatos.IsToggled == true) //Si el option esta activado. Entra { if (Variables.ServerUrl != null) //Si ServerUrl esta vacío es la primera vez esta recién instalada { if (await userPass.Acredita(Convert.ToInt32(Usuario.Text), Pass.Text)) //Verifica la autenticación { Variables.CodigoPersonal = Convert.ToInt32(Usuario.Text); Variables.ClavePersonal = Pass.Text; popupLoadingView.IsVisible = false; // Comprueba si hay partes cerrados pendientes de enviar. if (CompruebaTerminados() == true) { await DisplayAlert("Aviso", "Hay partes cerrados pendientes de enviar. Envie los partes cerrados para poder descargar", "OK"); await logotipo.RotateTo(360, 5000); popupLoadingView.IsVisible = true; await Navigation.PushModalAsync(new NavigationPage(new Principal_Listado())); } else { //Si las credenciales son correctas, todos los partes estan cerrados se procede a descarga completa o parcial. lblLoadingText.Text = "Descargando datos..."; popupLoadingView.IsVisible = true; await logotipo.RotateTo(360, 5000); //Cada vez que se loguea borra las tablas siguientes //Excepto cuando haya partes pendientes de enviar var enviadoapp = PartesSinEnviar(); if (enviadoapp == false) { datos.BorrarSat <SAT>(); datos.BorrarSatLineas <SAT_Lineas>(); datos.BorrarSatEquipo <SAT_Equipo>(); datos.BorrarClientes <Cliente>(); datos.BorrarClienteMaquinas <Cliente_Maquina>(); datos.BorrarDireccionCliente <Direccion_Cliente>(); datos.BorrarMaquinas <Maquinas>(); } //Recuperamos la configuración para bloquear o no la modificación del parte cuando se cierre var configuraciones = datos.GetAll <Conexiones>(); foreach (var b in configuraciones) { Variables.BloqueaParte = b.Bloquea_Parte; } // Procede a descargar las tablas. SincronizarDatos(Convert.ToInt32(Usuario.Text), Pass.Text); } } else { await DisplayAlert("Login", "!!! Las credenciales no son correctas !!!", "OK"); lblLoadingText.Text = ""; } } else { await DisplayAlert("Aviso", "! Si es la primera vez que inicia sesión, configure servidor y puerto !", "OK"); } } else //Si el boton option esta desactivado. También Verifica la autenticación { if (Variables.ServerUrl != null) //Si ServerUrl esta vacío es la primera vez esta recién instalada { if (await userPass.Acredita(Convert.ToInt32(Usuario.Text), Pass.Text)) { var configuraciones = datos.GetAll <Conexiones>(); foreach (var b in configuraciones) { Variables.BloqueaParte = b.Bloquea_Parte; } var valores = datos.GetAll <Valores_SAT>().FirstOrDefault(); if (valores != null) //Mientras no hayan datos en la DB se controla el error de null { Variables.ArticuloVarios = valores.SAT_ArticuloVarios; Variables.RevisaParte = valores.SAT_RevisarParteAPP; Variables.CodigoPersonal = Convert.ToInt32(Usuario.Text); } //Muestra la vista de los partes. lblLoadingText.Text = ""; await Navigation.PushModalAsync(new NavigationPage(new Principal_Listado())); } else { await DisplayAlert("Login", "!!! Las credenciales no son correctas !!!", "OK"); lblLoadingText.Text = ""; } } else { await DisplayAlert("Aviso", "Si es la primera vez que inicia sesion debe descargar los partes", "OK"); } } } else { lblLoadingText.IsVisible = true; await DisplayAlert("Login", "!!! Introduzca un usuario y su contraseña !!!", "OK"); lblLoadingText.Text = ""; } } catch (Exception ex) { await DisplayAlert("Error", ex.Message, "OK"); } } }
/* * Realiza la busqueda de la impresora */ public async void BusquedaDispositivo(object objeto, EventArgs E) { try { RepositorySatApp impresora = new RepositorySatApp(); List <Conexiones> parametros = impresora.GetAll <Conexiones>(); foreach (var pa in parametros) //Obtiene los datos de la impresora configurada { mac = pa.Dispositivo; } if (mac == "No impresora") { await Application.Current.MainPage.DisplayAlert("Aviso", "No hay impresoras configuradas", "OK"); ConfiguraImpresora(); return; } if (bluetooth.State == BluetoothState.On) { popupLoadingView.IsVisible = true; lblLoadingText.Text = "Enviando datos a la impresora..."; activityIndicator.IsRunning = true; btnImprimir.IsEnabled = false; Lista.Clear(); adaptador.ScanTimeout = 10000; adaptador.ScanMode = ScanMode.Balanced; int nvecesencontrado = 0; // Esta variable permite filtrar el numero de veces que encuentra el dispositivo. Aveces se bugea e imprime dos veces adaptador.DeviceDiscovered += (obj, a) => { Lista.Add(a.Device); if (a.Device.NativeDevice.ToString().Equals(mac)) //Localiza la impresora que tiene configurada { dispositivo = a.Device as IDevice; if (nvecesencontrado < 1) // Si el dispositivo ya lo ha encontrado no volvera a intentar conectarse una segunda vez { Autoconexion(dispositivo); adaptador.StopScanningForDevicesAsync(); nvecesencontrado++; } } }; if (!bluetooth.Adapter.IsScanning) { await adaptador.StartScanningForDevicesAsync(); } } if (dispositivo == null) { Lista.Clear(); await Application.Current.MainPage.DisplayAlert("Aviso", "No se encuentra la impresora", "OK"); popupLoadingView.IsVisible = false; activityIndicator.IsRunning = false; btnImprimir.IsEnabled = true; } impresora.CerrarConexion(); } catch (Exception s) { Console.WriteLine(s.Message); } }