예제 #1
0
파일: GlobalVM.cs 프로젝트: ander74/Orion
        // ====================================================================================================


        // ====================================================================================================
        #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}\"");
            }
        }
예제 #2
0
        // 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");
        }
예제 #3
0
        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());
        }
예제 #4
0
        // 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);
            }
        }
예제 #5
0
        //****************************************************************************************************
        // 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;
                }
            }
        }