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

            foreach (var nota in colRemotaNoSinc)
            {
                var note = new Nota();

                // comprobar que la nota remota no tenga asignado el ID de la nota local
                if (nota.idNota != 0)
                {
                    note = await App.Database.GetNoteAsync(nota.idNota);
                }
                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 = true,
                        Texto        = nota.Texto,
                        idNota       = nota.ID
                    };
                }
                await App.Database.SaveNoteAsync(note);

                nota.Sincronizada = true;
                nota.idNota       = note.ID;
                NotaSQL.GuardarNota(nota);

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

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

            MostrarNotasSincronizadas();
        }
Example #2
0
        async private void btnResetSinc_Clicked(object sender, EventArgs e)
        {
            var colLocalSinc = App.Database.NotasSincronizadas();

            LabelError.Text            = $"Notas sincronizadas: locales: {colLocalSinc.Count()}";
            LabelError.BackgroundColor = Color.Green;
            List <NotaSQL> colRemotaSinc = new List <NotaSQL>();

            if (conUsuarioRemoto)
            {
                colRemotaSinc    = NotaSQL.NotasSincronizadas(UsuarioSQL.UsuarioLogin.ID);
                LabelError.Text += $", remotas: {colRemotaSinc.Count()}.";
            }
            else
            {
                LabelError.Text           += ". No hay usuario logueado, por tanto, no se resetean las notas remotas.";
                LabelError.BackgroundColor = Color.Red;
            }
            LabelError.Text     += "\n\rSincronizando...";
            LabelError.IsVisible = true;

            int tLocal = 0, tRemoto = 0;

            for (var i = 0; i < colLocalSinc.Count; i++)
            {
                tLocal++;
                colLocalSinc[i].Sincronizada = false;
                colLocalSinc[i].idNota       = 0;
                await App.Database.SaveNoteAsync(colLocalSinc[i]);
            }
            for (var i = 0; i < colRemotaSinc.Count; i++)
            {
                tRemoto++;
                colRemotaSinc[i].Sincronizada = false;
                colRemotaSinc[i].idNota       = 0;
                NotaSQL.GuardarNota(colRemotaSinc[i]);
            }
            LabelError.Text            = $"Marcadas como no sincronizadas: {tLocal} {tLocal.Plural("local", true)} y {tRemoto} {tRemoto.Plural("remota")}.";
            LabelError.BackgroundColor = Color.Green;
            LabelError.IsVisible       = true;

            MostrarNotasSincronizadas();
        }
Example #3
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();
        }