private bool ValidarBono(BonoModel b)
 {
     return(b.NombreDestino != null && b.ApellidoDestino != null &&
            Utils.IsValidCedula(b.CedulaDestino) &&
            Utils.IsValidPhone(b.TelefonoDestino) &&
            monedaSeleccionada != null);
 }
        async void ComprarBono(object sender, System.EventArgs e)
        {
            await IsRunning(true);

            Cliente = (Cliente)Application.Current.Properties["cliente"];
            //btnComprar.IsEnabled = false;
            double montoBono;

            //tasa = cbMoneda.SelectedItem;
            BonoModel b = new BonoModel()
            {
                NombreDestino   = txtNombreDestinatario.Text,
                ApellidoDestino = txtApellidoDestinatario.Text,
                CedulaDestino   = txtCedula.Text,
                TelefonoDestino = txtCelular.Text,
                //monto = int.Parse(txtMonto.Text),
                FechaCompra = DateTime.Now
            };

            b.ClienteId = Cliente.ClienteId;

            if (txtMonto.Text != null)
            {
                double.TryParse(txtMonto.Text, out montoBono);
                b.Monto = montoBono;
            }

            if (monedaSeleccionada != null)
            {
                b.TasaId = monedaSeleccionada.Id;
            }

            if (ValidarBono(b))
            {
                //var currency = monedaSeleccionada.simbolo.Equals("RD") ? "DOP" : monedaSeleccionada.simbolo.Equals("EU") ? "EUR" : monedaSeleccionada.simbolo;
                //var currency = monedaSeleccionada.Simbolo.Equals("EU") ? "EUR" : monedaSeleccionada.Simbolo;
                //var payment = (new PayPalItem("Bono Supermercado Rodríguez", (decimal)b.Monto, currency));


                //var result = await CrossPayPalManager.Current.Buy(payment, new Decimal(0));
                //if (result.Status == PayPalStatus.Cancelled)
                //{
                //    await IsRunning(false);
                //    await DisplayAlert("Cancelado", "Ha cancelado el proceso", "Ok");
                //}
                //else if (result.Status == PayPalStatus.Error)
                //{
                //    await IsRunning(false);
                //    await DisplayAlert("Error", "Ha ocurrido un error.  Intene de nuevo mas tarde", "Ok");
                //}
                //else if (result.Status == PayPalStatus.Successful)
                //{
                //    var paymentId = result.ServerResponse.Response.Id;
                //    Debug.WriteLine(result.ServerResponse.Response.Id);
                //    PayPalClient paypal = new PayPalClient();
                //    PayPalPayment paymentDetail = await paypal.getPayment(paymentId);

                //    b.PaypalId = paymentId;

                //    //TODO agregar demas propiedades del pago de paypal (estado y metodo)
                try
                {
                    var bonoResult = bonosService.Buy(b);
                    if (bonoResult != null)
                    {
                        await DisplayAlert("Exito", "Se ha comprado el bono de forma exitosa", "Ok");

                        await Navigation.PopAsync();
                    }
                    else
                    {
                        await DisplayAlert("Error", "Ha ocurrido un error.  Intene de nuevo mas tarde", "Ok");
                    }
                    await IsRunning(false);
                }
                catch (Exception ex)
                {
                    await IsRunning(false);

                    Debug.WriteLine(ex.ToString());
                    await DisplayAlert("Error", "Ha ocurrido un error.  Intene de nuevo mas tarde", "Ok");
                }
                //}
            }
            else
            {
                await IsRunning(false);
                await DisplayAlert("Faltan Datos", "Hay Errores en los datos introducidos", "Ok");

                Debug.WriteLine("Hay errores en los datos introducidos");
            }
        }