Пример #1
0
        //private void btnPrivacidad_Clicked(object sender, EventArgs e)
        //{
        //    _ = App.MostrarPoliticaPrivacidad();
        //}

        async private void btnSincLocal_Clicked(object sender, EventArgs e)
        {
            // Sinconizar las notas no sincronizadas de la base local con la remota.
            if (colLocalNoSinc is null || colLocalNoSinc.Count() == 0)
            {
                LabelError.Text      = "O no hay base local o no hay notas que sincronizar.";
                LabelError.IsVisible = true;
                return;
            }
            var total = 0;

            foreach (var note in colLocalNoSinc)
            {
                var nota = new NotaSQL();

                // comprobar que la nota local no tenga asignado el ID de la nota remota
                if (note.idNota != 0)
                {
                    nota = NotaSQL.Nota(note.idNota);
                }
                if (nota.ID == 0)
                {
                    nota = new NotaSQL
                    {
                        Archivada    = note.Archivada,
                        Eliminada    = note.Eliminada,
                        Favorita     = note.Favorita,
                        Grupo        = note.Grupo,
                        Modificada   = note.Modificada,
                        Notificar    = note.Notificar,
                        Sincronizada = true,
                        Texto        = note.Texto,
                        idNota       = note.ID
                    };
                }
                NotaSQL.GuardarNota(nota);
                note.idNota       = nota.ID;
                note.Sincronizada = true;
                await App.Database.SaveNoteAsync(note);

                total++;
            }
            var plural = total == 1 ? "" : "s";

            LabelError.Text            = $"Se han sicronizado {total} nota{plural} de la base local en la base remota.";
            LabelError.BackgroundColor = Color.Green;
            LabelError.IsVisible       = true;

            MostrarNotasSincronizadas();
        }
Пример #2
0
        async void OnSaveButtonClicked(object sender, EventArgs e)
        {
            var nota = (NotaSQL)BindingContext;

            // no guardar notas en blanco
            if (string.IsNullOrEmpty(nota.Texto))
            {
                await Navigation.PopAsync();

                return;
            }

            nota.Modificada = DateTime.UtcNow;
            nota.Archivada  = chkArchivada.IsToggled;
            nota.Favorita   = chkFavorita.IsToggled;
            nota.Eliminada  = chkEliminada.IsToggled;
            nota.Notificar  = chkNotificar.IsToggled;
            nota.Grupo      = txtGrupo.Text;

            // Guardar el último grupo usado
            App.UltimoGrupo = nota.Grupo;

            var note = nota.ComoNotaLocal();

            if (App.UsarNotasLocal || DatosMostrar == NotasDatosMostrar.Local)
            {
                note.ID = nota.ID;
                await App.Database.SaveNoteAsync(note);
            }
            else
            {
                NotaSQL.GuardarNota(nota);

                // Guardar los datos del usuario
                UsuarioSQL.UsuarioLogin.UltimoAcceso    = DateTime.UtcNow;
                UsuarioSQL.UsuarioLogin.VersionPrograma = $"{App.AppName} {App.AppVersion}";
                UsuarioSQL.GuardarUsuario(UsuarioSQL.UsuarioLogin);
            }

            //
            // Por comprobar
            //

            // Si la nota no es nueva, sincronizar el contenido

            // Si la nota es nueva, crear una nota en la otra base de datos

            if (App.HayConexionInternet())
            {
                // Sincronizar la nota
                if (App.UsarNotasLocal || DatosMostrar == NotasDatosMostrar.Local)
                {
                    // Se ha guardado como nota local
                    if (note.idNota != 0)
                    {
                        nota = NotaSQL.Nota(note.idNota);
                    }
                    else
                    {
                        nota = new NotaSQL();
                    }

                    if (nota.ID == 0)
                    {
                        nota = new NotaSQL
                        {
                            Archivada    = note.Archivada,
                            Eliminada    = note.Eliminada,
                            Favorita     = note.Favorita,
                            Grupo        = note.Grupo,
                            Modificada   = note.Modificada,
                            Notificar    = note.Notificar,
                            Sincronizada = note.Sincronizada,
                            Texto        = note.Texto,
                            idNota       = note.ID
                        };
                    }
                    else
                    {
                        nota = note.ComoNotaRemota();
                    }
                    nota.idNota       = note.ID;
                    nota.Sincronizada = true;
                    NotaSQL.GuardarNota(nota);
                    note.idNota       = nota.ID;
                    note.Sincronizada = true;
                    await App.Database.SaveNoteAsync(note);
                }
                else
                {
                    // Se ha guardado como nota remota
                    if (nota.idNota != 0)
                    {
                        note = await App.Database.GetNoteAsync(nota.idNota);
                    }
                    else
                    {
                        note = new Nota();
                    }

                    if (note.ID == 0)
                    {
                        note = new Nota
                        {
                            Archivada    = nota.Archivada,
                            Eliminada    = nota.Eliminada,
                            Favorita     = nota.Favorita,
                            Grupo        = nota.Grupo,
                            Modificada   = nota.Modificada,
                            Notificar    = nota.Notificar,
                            Sincronizada = nota.Sincronizada,
                            Texto        = nota.Texto,
                            idNota       = nota.ID
                        };
                    }
                    else
                    {
                        note = nota.ComoNotaLocal();
                    }
                    note.idNota       = nota.ID;
                    note.Sincronizada = true;
                    await App.Database.SaveNoteAsync(note);

                    nota.idNota       = note.ID;
                    nota.Sincronizada = true;
                    NotaSQL.GuardarNota(nota);
                }
            }
            await Navigation.PopAsync();

            NotasActivas.TituloNotas();
        }