protected override void OnCreate(Bundle bundle) { try { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.button1); EditText textoUsuario = FindViewById <EditText>(Resource.Id.editText1); EditText textoPassword = FindViewById <EditText>(Resource.Id.editText2); string usuarioinformacion = Intent.GetStringExtra("usuarioinformacion") ?? string.Empty; if (!string.IsNullOrEmpty(usuarioinformacion)) { UsuarioBO resultado = Newtonsoft.Json.JsonConvert.DeserializeObject <UsuarioBO>(usuarioinformacion); if (resultado != null && !string.IsNullOrEmpty(resultado.Usuario) && !string.IsNullOrEmpty(resultado.Password)) { textoUsuario.Text = resultado.Usuario; textoPassword.Text = resultado.Password; } } button.Click += async delegate { button.Enabled = false; if (isInCall) { Toast.MakeText(this, "Su Solicitud se esta procesando...", ToastLength.Short).Show(); button.Enabled = true; return; } isInCall = true; if (string.IsNullOrEmpty(textoUsuario.Text)) { Toast.MakeText(this, "Ingrese su usuario...", ToastLength.Short).Show(); button.Enabled = true; isInCall = false; return; } if (string.IsNullOrEmpty(textoPassword.Text)) { Toast.MakeText(this, "Ingrese su contraseña...", ToastLength.Short).Show(); button.Enabled = true; isInCall = false; return; } if (!GetIsInternetAccessAvailable()) { Toast.MakeText(context, "Sin Acceso a Internet. Verifique", ToastLength.Short).Show(); button.Enabled = true; isInCall = false; return; } if (!IsHostReachable()) { Toast.MakeText(context, "Sin comunicación con el Servicio. Verifique", ToastLength.Short).Show(); button.Enabled = true; isInCall = false; return; } progress = new ProgressDialog(this); progress.Indeterminate = false; progress.SetProgressStyle(ProgressDialogStyle.Spinner); progress.SetMessage("Validando información..."); progress.SetCancelable(false); progress.Show(); string resultado = await LogInuser(textoUsuario.Text, textoPassword.Text); if (string.IsNullOrEmpty(resultado)) { var intent = new Intent(this, typeof(ProcesoPrincipalActivity)); intent.PutExtra("contenido", contenido); RunOnUiThread(() => { button.Enabled = true; isInCall = false; progress.SetMessage("Cargando contenido..."); progress.Hide(); progress.Dispose(); StartActivity(intent); }); } else { RunOnUiThread(() => { button.Enabled = true; isInCall = false; progress.Hide(); progress.Dispose(); Toast.MakeText(this, resultado, ToastLength.Long).Show(); }); } }; } catch (Exception ex) { isInCall = false; Toast.MakeText(context, "La aplicación tuvo un incoveniente. Intente más tarde. Error: " + ex.Message, ToastLength.Long).Show(); } }
protected override void OnCreate(Bundle savedInstanceState) { try { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.ProcesoPrincipalActivity); string contenido = Intent.GetStringExtra("contenido") ?? string.Empty; if (!string.IsNullOrEmpty(contenido)) { AutenticarUsuarioResult resultado = Newtonsoft.Json.JsonConvert.DeserializeObject <AutenticarUsuarioResult>(contenido); citas = resultado.lista; if (citas != null && citas.Any()) { UsuarioBO usuario = new UsuarioBO { Usuario = citas[0].Usuario, Password = citas[0].Password }; usuarioinformacion = Newtonsoft.Json.JsonConvert.SerializeObject(usuario); } } Spinner spinner = FindViewById <Spinner>(Resource.Id.spinner1); spinner.Adapter = new CitasAdapter(this, citas); spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(spinner_ItemSelected); Button btnCheckin = FindViewById <Button>(Resource.Id.button1); Button btnCheckout = FindViewById <Button>(Resource.Id.button2); Button btnCrm = FindViewById <Button>(Resource.Id.button3); #region btnCheckIn btnCheckin.Click += async delegate { btnCheckin.Enabled = false; if (isInCall) { Toast.MakeText(this, "Su Solicitud se esta procesando...", ToastLength.Short).Show(); btnCheckin.Enabled = true; return; } isInCall = true; try { if (!GetIsInternetAccessAvailable()) { Toast.MakeText(context, "Sin Acceso a Internet. Verifique", ToastLength.Short).Show(); btnCheckin.Enabled = true; isInCall = false; return; } if (!IsHostReachable()) { Toast.MakeText(context, "Sin comunicación con el Servicio. Verifique", ToastLength.Short).Show(); btnCheckin.Enabled = true; isInCall = false; return; } if (citaSeleccionada != null) { progress = new ProgressDialog(this); progress.Indeterminate = false; progress.SetProgressStyle(ProgressDialogStyle.Spinner); progress.SetMessage("Realizando Check-In..."); progress.SetCancelable(false); progress.Show(); var locator = CrossGeolocator.Current; locator.DesiredAccuracy = 1; var position = await locator.GetPositionAsync(timeoutMilliseconds : 10000); if (position != null) { DateTime momento = DateTime.Now; citaSeleccionada.LatitudInicio = position.Latitude; citaSeleccionada.LongitudInicio = position.Longitude; citaSeleccionada.HoraLlegada = momento.ToString("dd/MM/yyyy HH:mm"); citaSeleccionada.year = momento.Year; citaSeleccionada.month = momento.Month; citaSeleccionada.day = momento.Day; citaSeleccionada.hour = momento.Hour; citaSeleccionada.minute = momento.Minute; string resultado = await DoCheckInAsync(); if (string.IsNullOrEmpty(resultado)) { RunOnUiThread(() => { btnCheckin.Enabled = true; isInCall = false; progress.Hide(); progress.Dispose(); CargaInformacionConResultado("CI"); }); } else { RunOnUiThread(() => { btnCheckin.Enabled = true; isInCall = false; citaSeleccionada.LatitudInicio = 0; citaSeleccionada.LongitudInicio = 0; citaSeleccionada.HoraLlegada = string.Empty; citaSeleccionada.year = 0; citaSeleccionada.month = 0; citaSeleccionada.day = 0; citaSeleccionada.hour = 0; citaSeleccionada.minute = 0; progress.Hide(); progress.Dispose(); AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.SetTitle("Información"); alert.SetMessage(resultado); alert.SetPositiveButton("Aceptar", (senderAlert, args) => { }); Dialog dialog = alert.Create(); dialog.Show(); }); } } else { btnCheckin.Enabled = true; isInCall = false; Toast.MakeText(context, "No se logro optener su posición actual", ToastLength.Long).Show(); return; } } else { btnCheckin.Enabled = true; isInCall = false; Toast.MakeText(context, "Debe seleccionar una cita", ToastLength.Long).Show(); return; } } catch (Exception ex) { progress.Hide(); btnCheckin.Enabled = true; isInCall = false; Toast.MakeText(this, "No se logro realizar el Check In. Intente más tarde. Error: " + ex.Message, ToastLength.Long).Show(); } }; #endregion btnCheckIn #region btnCheckout btnCheckout.Click += async delegate { btnCheckout.Enabled = false; if (isInCall) { Toast.MakeText(this, "Su Solicitud se esta procesando...", ToastLength.Short).Show(); btnCheckout.Enabled = true; return; } isInCall = true; try { if (!GetIsInternetAccessAvailable()) { btnCheckout.Enabled = true; isInCall = false; Toast.MakeText(context, "Sin Acceso a Internet. Verifique", ToastLength.Long).Show(); return; } if (!IsHostReachable()) { btnCheckout.Enabled = true; isInCall = false; Toast.MakeText(context, "Sin comunicación con el Servicio. Verifique", ToastLength.Long).Show(); return; } if (citaSeleccionada != null) { progress = new ProgressDialog(this); progress.Indeterminate = false; progress.SetProgressStyle(ProgressDialogStyle.Spinner); progress.SetMessage("Realizando Check-Out..."); progress.SetCancelable(false); progress.Show(); var locator = CrossGeolocator.Current; locator.DesiredAccuracy = 1; var position = await locator.GetPositionAsync(timeoutMilliseconds : 10000); if (position != null) { DateTime momento = DateTime.Now; citaSeleccionada.LatitudFin = position.Latitude; citaSeleccionada.LongitudFin = position.Longitude; citaSeleccionada.HoraSalida = momento.ToString("dd/MM/yyyy HH:mm"); citaSeleccionada.year = momento.Year; citaSeleccionada.month = momento.Month; citaSeleccionada.day = momento.Day; citaSeleccionada.hour = momento.Hour; citaSeleccionada.minute = momento.Minute; string resultado = await DoCheckOutAsync(); if (string.IsNullOrEmpty(resultado)) { RunOnUiThread(() => { btnCheckout.Enabled = true; isInCall = false; progress.Hide(); progress.Dispose(); CargaInformacionConResultado("CO"); }); } else { RunOnUiThread(() => { btnCheckout.Enabled = true; isInCall = false; citaSeleccionada.LatitudFin = 0; citaSeleccionada.LongitudFin = 0; citaSeleccionada.HoraSalida = string.Empty; citaSeleccionada.year = 0; citaSeleccionada.month = 0; citaSeleccionada.day = 0; citaSeleccionada.hour = 0; citaSeleccionada.minute = 0; progress.Hide(); progress.Dispose(); AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.SetTitle("Información"); alert.SetMessage(resultado); alert.SetPositiveButton("Aceptar", (senderAlert, args) => { }); Dialog dialog = alert.Create(); dialog.Show(); }); } } else { btnCheckout.Enabled = true; isInCall = false; Toast.MakeText(context, "No se logro optener su posición actual", ToastLength.Long).Show(); return; } } else { btnCheckout.Enabled = true; isInCall = false; Toast.MakeText(context, "Debe seleccionar una cita", ToastLength.Long).Show(); return; } } catch (Exception ex) { progress.Hide(); btnCheckout.Enabled = true; isInCall = false; Toast.MakeText(this, "No se logro realizar el Check Out. Intente más tarde. Error: " + ex.Message, ToastLength.Long).Show(); } }; #endregion btnCheckout #region btnCRM btnCrm.Click += delegate { try { var existIntent = ApplicationContext.PackageManager.GetLaunchIntentForPackage("com.microsoft.crm.crmhost"); //var existIntent = ApplicationContext.PackageManager.GetLaunchIntentForPackage("com.whatsapp"); if (existIntent != null) { StartActivity(existIntent); } else { existIntent = ApplicationContext.PackageManager.GetLaunchIntentForPackage("com.microsoft.crm.crmphone"); if (existIntent != null) { StartActivity(existIntent); } else { var uri = Android.Net.Uri.Parse("market://details?id=com.microsoft.crm.crmhost"); var intent = new Intent(Intent.ActionView, uri); StartActivity(intent); } } } catch (Exception ex) { Toast.MakeText(this, "No se pudo abrir Dynamics CRM. Intente más tarde. Error: " + ex.Message, ToastLength.Long).Show(); return; } }; #endregion btnCRM AndroidEnvironment.UnhandledExceptionRaiser += new EventHandler <RaiseThrowableEventArgs>(AndroidEnvironment_UnhandledExceptionRaiser); } catch (Exception ex) { Toast.MakeText(context, "La aplicación tuvo un incoveniente. Intente más tarde. Error: " + ex.Message, ToastLength.Long).Show(); } }