示例#1
0
        public static void CreateLocalDatabaseFile()
        {
            // Nějaké pozůstatky z předchozí instalace
            string path = (System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS"));

            if (Directory.Exists(path))
            {
                System.Windows.MessageBoxResult result = MessageBox.Show("Na tomto počítači byla nalezena databáze předchozí instalace této aplikace - adresář: " + System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS") + Environment.NewLine + "Pokračováním budou tato data ztracena. Volbou 'ne' budou všechna  data zachována.", "Varování", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
                if (result == MessageBoxResult.Yes)
                {
                    // Smazat všechen obsah složky PASS
                    DirectoryInfo dir = new DirectoryInfo(path);
                    dir.Delete(true);

                    //Vytvořit složku AppData
                    Directory.CreateDirectory(System.IO.Path.Combine(path, "AppData"));

                    // Vytvořit data v adresáři
                    System.IO.File.Copy("AppData/Database.mdf", System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS", "AppData", "Database.mdf"));
                    System.IO.File.Copy("AppData/Database_log.ldf", System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS", "AppData", "Database_log.ldf"));

                    try
                    {
                        DatabaseSetup.SetupDatabase();
                    }
                    catch (Exception ex)
                    {
                        // DialogHelper.ShowWarning("Nová databázová struktura nebyla vytvořena. Původní data zůstala nezměněna.");
                        DialogHelper.ShowError(ex.Message);
                    }
                }
            }
            else // Čistá instalace
            {
                Directory.CreateDirectory(System.IO.Path.Combine(path, "AppData")); // Vytvoří nadsložku PASS a podsložku AppData zároveň
                // Vytvořit data v adresáři
                System.IO.File.Copy("AppData/Database.mdf", System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS", "AppData", "Database.mdf"));
                System.IO.File.Copy("AppData/Database_log.ldf", System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PASS", "AppData", "Database_log.ldf"));

                try
                {
                    DatabaseSetup.SetupDatabase();
                }
                catch (Exception ex)
                {
                    // DialogHelper.ShowWarning("Nová databázová struktura nebyla vytvořena. Původní data zůstala nezměněna.");
                    DialogHelper.ShowError(ex.Message);
                }
            }
        }