// ==================================================================================================== // ==================================================================================================== #region EVENTOS // ==================================================================================================== public void CerrandoVentanaEventHandler(object sender, CancelEventArgs e) { if (PuedeGuardarCambios()) { bool?resultado = mensajes.VerMensaje("¡¡ ATENCIÓN !!\n\nHay cambios sin guardar.\n\n¿Desea guardar los cambios?", "NO SE HAN GUARDADO LOS CAMBIOS", true, true); switch (resultado) { case null: e.Cancel = true; return; case true: GuardarCambios(); break; } } // Guardamos las configuraciones. Configuracion.Guardar(ArchivoOpcionesConfiguracion); Convenio.Guardar(ArchivoOpcionesConvenio); if (_centroactual != Centros.Desconocido) { PorCentro.Guardar(ArchivoOpcionesPorCentro); } //App.Global.Configuracion.Save(); //App.Global.Convenio2.Save(); //PorCentro.Default.Save(); // Si hay que sincronizar con DropBox, se copian los archivos. if (Configuracion.SincronizarEnDropbox) { Respaldo.SincronizarDropbox(); } // Intentamos cerrar la calculadora, si existe. if (App.Calculadora != null) { App.Calculadora.Close(); } // Apagamos los servicios if (Informes != null) { Informes.Dispose(); } // Si hay que actualizar el programa, lanzamos el actualizador. if (App.ActualizarAlSalir) { Process.Start(@"OrionUpdate.exe", $"\"{Configuracion.CarpetaOrigenActualizar}\""); } }
// Ejecución del comando private void CopiaSeguridadManual() { if (App.Global.HayCambios) { if (mensajes.VerMensaje("¡¡ ATENCIÓN !!\n\nHay cambios sin guardar.\n\n¿Desea guardar los cambios?\n\n" + "(Los cambios no guardados no se reflejarán en la copia de seguridad.)", "NO SE HAN GUARDADO LOS CAMBIOS", true) == true) { App.Global.GuardarCambios(); } } Respaldo.CopiaDatos("Manual"); App.Global.Configuracion.UltimaCopia = DateTime.Now; mensajes.VerMensaje("Copia de seguridad creada correctamente.", "Copia Seguridad"); }
public List <Respaldo> ListarRespaldos() { List <Respaldo> listaRespaldos = new List <Respaldo>(); //System.IO.DirectoryInfo directorio = new System.IO.DirectoryInfo(@"C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup"); System.IO.DirectoryInfo directorio = new System.IO.DirectoryInfo(@"C:\\Implantagraf\\RESPALDOS"); FileInfo[] archivos = directorio.GetFiles(); foreach (var archivoActual in archivos) { var respaldoActual = new Respaldo { Ruta = archivoActual.FullName }; listaRespaldos.Add(respaldoActual); } return(listaRespaldos.OrderByDescending(x => x.Ruta).ToList()); }
// Ejecución del comando private void PcADropbox() { if (mensajes.VerMensaje("¡ATENCIÓN!\n\nVas a copiar los datos del ordenador a Dropbox.\n\n¿Desea continuar?", "Copiar de PC a Dropbox", true) == false) { return; } try { // Hacemos copia de seguridad de los datos de Dropbox. if (!Respaldo.CopiaDropbox()) { if (mensajes.VerMensaje("¡ATENCIÓN!\n\nNo se ha podido hacer una copia de seguridad de Dropbox.\n\n¿Desea continuar?", "Copiar de PC a Dropbox", true) == false) { return; } } // Copiamos la carpeta Datos a Dropbox. Respaldo.DatosToDropbox(); } catch (Exception ex) { mensajes.VerError("OpcionesCommands.PcADropbox", ex); } }
//**************************************************************************************************** // CONSTRUCTOR DE LA VENTANA PRINCIPAL //**************************************************************************************************** public MainWindow() { InitializeComponent(); // Solicitamos aceptar la licencia si no se ha aceptado nunca. if (!App.Global.Configuracion.LicenciaAceptada) { VentanaAcercaDeVM vm = new VentanaAcercaDeVM() { MostrarAceptarLicencia = true }; VentanaAcercaDe ventanalicencia = new VentanaAcercaDe() { DataContext = vm }; ventanalicencia.ShowDialog(); if (vm.AceptarLicencia == false) { MessageBox.Show("Debe Aceptar la licencia", "Atención"); this.Close(); } else { App.Global.Configuracion.LicenciaAceptada = true; } } // Establecemos la versión del ensamblado. Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; App.Global.TextoEstado = $"Versión {ver.Major}.{ver.Minor}.{ver.Build}"; // Registramos el evento cerrar en el viewmodel. this.Closing += App.Global.CerrandoVentanaEventHandler; // Si hay contraseña de acceso... if (Utils.CodificaTexto("") != App.Global.Configuracion.ContraseñaDatos) { //Solicitamos la contraseña de acceso a las bases de datos. VentanaContraseña ventana = new VentanaContraseña(); ventana.DataContext = App.Global; if (ventana.ShowDialog() == false) { this.Close(); } } // Si hay que sincronizar con DropBox, se copian los archivos. if (App.Global.Configuracion.SincronizarEnDropbox) { Respaldo.SincronizarDropbox(); } // Si hay que actualizar el programa, se actualiza. if (App.Global.Configuracion.ActualizarPrograma && !string.IsNullOrWhiteSpace(App.Global.Configuracion.CarpetaOrigenActualizar)) { string archivoOrigen = Path.Combine(App.Global.Configuracion.CarpetaOrigenActualizar, "OrionUpdate.exe"); string archivoDestino = Path.Combine(Directory.GetCurrentDirectory(), "OrionUpdate.exe"); DateTime origen = File.GetLastWriteTime(archivoOrigen); DateTime destino = File.GetLastWriteTime(archivoDestino); if (origen > destino && File.Exists(archivoOrigen)) { File.Copy(archivoOrigen, archivoDestino, true); } archivoOrigen = Path.Combine(App.Global.Configuracion.CarpetaOrigenActualizar, "Orion.exe"); archivoDestino = Path.Combine(Directory.GetCurrentDirectory(), "Orion.exe"); origen = File.GetLastWriteTime(archivoOrigen); destino = File.GetLastWriteTime(archivoDestino); if (origen > destino) { // Necesita actualizar string mensaje = "Hay una nueva versión de Orión.\n\n¿Desea actualizar ahora?"; if (MessageBox.Show(mensaje, "Actualización", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.Yes) { App.ActualizarAlSalir = true; this.Close(); } } } // Definimos el archivo de base de datos string archivo = Utils.CombinarCarpetas(App.Global.Configuracion.CarpetaDatos, "Lineas.accdb"); // Si el archivo no existe, pedimos cambiar la carpeta de datos if (!File.Exists(archivo)) { if (MessageBox.Show("La carpeta de datos no está bien definida.\n\n¿Desea elegir otra carpeta?", "ERROR", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { System.Windows.Forms.FolderBrowserDialog dialogo = new System.Windows.Forms.FolderBrowserDialog(); dialogo.Description = "Ubicación Bases de Datos"; dialogo.RootFolder = Environment.SpecialFolder.MyComputer; dialogo.SelectedPath = App.Global.Configuracion.CarpetaDatos; dialogo.ShowNewFolderButton = true; if (dialogo.ShowDialog() == System.Windows.Forms.DialogResult.OK) { App.Global.Configuracion.CarpetaDatos = dialogo.SelectedPath; App.Global.Configuracion.Guardar(App.Global.ArchivoOpcionesConfiguracion); } } } // Establecemos el DataContext de la ventana. this.DataContext = App.Global; // Activamos el botón de la calculadora. //App.Global.Configuracion.BotonCalculadoraActivo = true; //Si hay que hacer una copia de seguridad, evaluar si hay que hacerla y si es así, hacerla. if (App.Global.Configuracion.CopiaAutomatica > 0 && App.Global.Configuracion.UltimaCopia != null) { TimeSpan tiempo = DateTime.Now.Subtract(App.Global.Configuracion.UltimaCopia); switch (App.Global.Configuracion.CopiaAutomatica) { case 1: // Semanal if (tiempo.TotalDays > 7) { Respaldo.CopiaDatos(); App.Global.Configuracion.UltimaCopia = DateTime.Now; } break; case 2: // Quincenal if (tiempo.TotalDays > 14) { Respaldo.CopiaDatos(); App.Global.Configuracion.UltimaCopia = DateTime.Now; } break; case 3: // Mensual if (tiempo.TotalDays > 30) { Respaldo.CopiaDatos(); App.Global.Configuracion.UltimaCopia = DateTime.Now; } break; } } }