public async void listarTratamientos()
 {
     if (tratas1 == null)
     {
         tratas1 = new ObservableCollection<Tratamiento>();
         Tratamiento trata = new Tratamiento();
         var query = from UsuarioSelected in ParseObject.GetQuery("Tratamiento")
                     where UsuarioSelected.Get<string>("MedicoId") == usu.Id
                     where UsuarioSelected.Get<string>("paciente") == usu.Id
                     select UsuarioSelected;
         var final = await query.FindAsync();
         foreach (var obj in final) {
             
                 trata = new Tratamiento();
                 trata.Id = obj.ObjectId;
                 trata.Fechainicio = (DateTime) obj.UpdatedAt;
                 trata.Fechafin = obj.Get<DateTime>("FechaFin");
                 trata.Fechacontrol = obj.Get<DateTime>("FechaControl");
                 trata.NomTratamiento = obj.Get<string>("Nomtratamiento");
                 trata.Descripcion = obj.Get<string>("Descripcion");
                 tratas1.Add(trata);
             
         }
     }
 }
        public async void listarTratas()
        {
            
            DateTime fecha = DateTime.Now;
            
            tratas1 = new ObservableCollection<Tratamiento>();
            var query = from UsuarioSelected in ParseObject.GetQuery("Tratamiento")
                        where UsuarioSelected.Get<string>("paciente") == usu.Id
                        select UsuarioSelected;
            var final = await query.FindAsync();
            Tratamiento trata;
            foreach (var obj in final)
            {
             
                trata = new Tratamiento();
                trata.Id = obj.ObjectId;
                trata.Medico = obj.Get<string>("MedicoId");
                trata.Fechainicio = (DateTime)obj.CreatedAt;
                trata.Fechafin = obj.Get<DateTime>("FechaFin");
                trata.Fechacontrol = obj.Get<DateTime>("FechaControl");
                trata.NomTratamiento = obj.Get<string>("Nomtratamiento");
                trata.Descripcion = obj.Get<string>("Descripcion");
                tratas1.Add(trata);
                if (trata.Fechacontrol.Month == fecha.Month && trata.Fechacontrol.Year == fecha.Year && trata.Fechacontrol.Day == fecha.Day)
                {
                    cb = new CheckBox
                    {
                        Content = "¿Entendido?"
                    };
                    var panel = new StackPanel();

                    panel.Children.Add(new TextBlock
                    {
                        Text = "Tienes control medico del tratamiento " + trata.Fechacontrol.Date,
                        TextWrapping = TextWrapping.Wrap,
                    });
                    
                    var dialog = new ContentDialog()
                    {
                        Title = "TIENES CONTROL",
                        MaxWidth = this.MaxWidth
                    };
                    
                    cb.SetBinding(CheckBox.IsCheckedProperty, new Binding
                    {
                        Source = dialog,
                    });
                    panel.Children.Add(cb);
                    dialog.Content = panel;
                    dialog.PrimaryButtonText = "OK";
                    dialog.IsPrimaryButtonEnabled = true;
                    dialog.PrimaryButtonClick += delegate {
                        notificar(cb,trata);
                    };
                    dialog.ShowAsync();



                }
                
        }
        }
 public async void notificar(CheckBox a, Tratamiento trata)
 {
     if(a.IsChecked==false)
     {
         ParseObject appointment = new ParseObject("Notificacion");
         appointment["Medico"] = trata.Medico;
         appointment["Paciente"] = usu.Id;
         appointment["Descripcion"] = "No ha tenido en cuenta la fecha de control del tratamiento : "+trata.NomTratamiento;
        
         await appointment.SaveAsync();
     }
    
 }
        private async void listarNotificacinoes()
        {
            notis1 = new ObservableCollection<MiNotificacion>();

            var query = from UsuarioSelected in ParseObject.GetQuery("Notificacion")
                        where UsuarioSelected.Get<string>("Medico") == usu.Id
                        select UsuarioSelected;
            var final = await query.FindAsync();
            MiNotificacion trata;
            int i = 0;
            string nom="";
            foreach (var obj in final)
            {
                i++;
                nom = "Notificacion " + i;
                trata = new MiNotificacion();
                trata.Id = obj.ObjectId;
                trata.Descripcion = obj.Get<string>("Descripcion");
                trata.Nombre = nom;
                trata.Paciente = obj.Get<string>("Paciente");
                trata.Fecha = (DateTime)obj.CreatedAt;
                notis1.Add(trata);
            }
            }
        public async void llenarDatos()
        {       
            tratas1 = new ObservableCollection<Tratamiento>();
            tratas2 = new ObservableCollection<Tratamiento>();
            //Tratamiento trata1 = new Tratamiento() { NomTratamiento = "Trata1", Descripcion = "Descripcion1", Fechainicio = DateTime.Now, Fechacontrol = DateTime.Now, Fechafin = DateTime.Now };
            //tratas2.Add(trata1);
            Esperar1.Visibility = Visibility.Visible;
            try {
                Tratamiento trata;
                var query = from UsuarioSelected in ParseObject.GetQuery("Tratamiento")
                            where UsuarioSelected.Get<string>("MedicoId") == medico.Id
                            select UsuarioSelected;
                var final = await query.FindAsync();
                foreach (var obj in final)
                {
                    trata = new Tratamiento();
                    trata.Id = obj.ObjectId;
                    trata.Fechainicio = (DateTime)obj.UpdatedAt;
                    trata.Fechafin = obj.Get<DateTime>("FechaFin");
                    trata.Fechacontrol = obj.Get<DateTime>("FechaControl");
                    trata.NomTratamiento = obj.Get<string>("Nomtratamiento");
                    trata.Descripcion = obj.Get<string>("Descripcion");
                    if (obj.Get<string>("paciente") == usu.Id)
                    {
                        tratas1.Add(trata);
                    }
                    else if (obj.Get<string>("paciente") == medico.Id)
                    {
                        tratas2.Add(trata);
                    }

                }
                Esperar1.Visibility = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                Esperar1.Visibility = Visibility.Collapsed;
                var dialog = new Windows.UI.Popups.MessageDialog("No ha sido posible cargar la informacion");
                dialog.Commands.Add(new Windows.UI.Popups.UICommand("OK") { });
                var result = await dialog.ShowAsync();
            }

        }
        private async void Asoci(object sender, RoutedEventArgs e)
        {
            var trata = new ParseObject("Tratamiento");

            trata["Nomtratamiento"] = nomtra1.Text;
            trata["Descripcion"] = desc1.Text;
            trata["FechaFin"] = fini1.Date.Date;
            trata["FechaControl"] = ffin1.Date.Date;
            trata["MedicoId"] = medico.Id;
            trata["paciente"] = usu.Id;
            Tratamiento tratas = new Tratamiento();
            
            await trata.SaveAsync();
            tratas.Id = trata.ObjectId;
            tratas.NomTratamiento = nomtra1.Text;
            tratas.Descripcion = desc1.Text;
            tratas.Fechainicio = fini1.Date.Date;
            tratas.Fechacontrol= ffin1.Date.Date;
            tratas1.Add(tratas);
        }
 private void Asociar1(object sender, SelectionChangedEventArgs e)
 {
     tratar = ((sender as ListBox).SelectedItem as Tratamiento);
 }