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(); }
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(); }
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(); }