예제 #1
0
        private static ClsMannschaften UpdateFileLocations(ClsMannschaften Mannschaften, string BildFolder)
        {
            foreach (Mannschaften a in Mannschaften.Mannschaften)
            {
                if (!string.IsNullOrEmpty(a.Bild1))
                {
                    string datei = Path.GetFileName(a.Bild1);
                    a.Bild1 = Path.Combine(BildFolder, datei);
                }

                if (!string.IsNullOrEmpty(a.Bild2))
                {
                    string datei = Path.GetFileName(a.Bild2);
                    a.Bild2 = Path.Combine(BildFolder, datei);
                }

                if (!string.IsNullOrEmpty(a.Torton))
                {
                    string datei = Path.GetFileName(a.Torton);
                    a.Torton = Path.Combine(BildFolder, datei);
                }
            }

            foreach (Spieler a in Mannschaften.Spieler)
            {
                if (!string.IsNullOrEmpty(a.Bild))
                {
                    string datei = Path.GetFileName(a.Bild);
                    a.Bild = Path.Combine(BildFolder, datei);
                }
            }

            return(Mannschaften);
        }
예제 #2
0
        private static ClsMannschaften LoadFromDB()
        {
            ClsMannschaften Mannschaften = new ClsMannschaften();

            Mannschaften.Mannschaften = ClsMannschaftenControler.Mannschaften();
            Mannschaften.Spieler      = ClsMannschaftenControler.Spielers();

            return(Mannschaften);
        }
예제 #3
0
        private static List <string> BildDateien(ClsMannschaften Mannschaften)
        {
            List <string> filelist = new List <string>();

            foreach (Mannschaften a in Mannschaften.Mannschaften)
            {
                if (!string.IsNullOrEmpty(a.Bild1))
                {
                    if (File.Exists(a.Bild1))
                    {
                        filelist.Add(a.Bild1);
                    }
                }

                if (!string.IsNullOrEmpty(a.Bild2))
                {
                    if (File.Exists(a.Bild2))
                    {
                        filelist.Add(a.Bild2);
                    }
                }

                if (!string.IsNullOrEmpty(a.Torton))
                {
                    if (File.Exists(a.Torton))
                    {
                        filelist.Add(a.Torton);
                    }
                }
            }

            foreach (Spieler a in Mannschaften.Spieler)
            {
                if (!string.IsNullOrEmpty(a.Bild))
                {
                    if (File.Exists(a.Bild))
                    {
                        filelist.Add(a.Bild);
                    }
                }
            }

            List <string> distfilelist = filelist.Distinct().ToList();

            return(distfilelist);
        }
예제 #4
0
        public static void ExportToFile(string Datei)
        {
            string tmpFolder = Path.Combine(MyFilepath + @"\tmp");

            if (Directory.Exists(tmpFolder))
            {
                Directory.Delete(tmpFolder, true);
            }

            Directory.CreateDirectory(tmpFolder);

            string tmpXMLfile = Path.Combine(tmpFolder + @"\Mannschaften.xml");

            ClsMannschaften Mannschaften = LoadFromDB();

            XmlSerializer x      = new XmlSerializer(Mannschaften.GetType());
            StreamWriter  writer = new StreamWriter(tmpXMLfile);

            x.Serialize(writer, Mannschaften);
            writer.Close();

            // Liste alle bildDateien erstellen
            List <string> ExpFiles = BildDateien(Mannschaften);

            ExpFiles.Add(tmpXMLfile);

            ZipArchive zip = ZipFile.Open(Datei, ZipArchiveMode.Create);

            foreach (string file in ExpFiles)
            {
                if (file != null)
                {
                    zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
                }
            }

            zip.Dispose();

            // tmp xml löschen
            if (File.Exists(tmpXMLfile))
            {
                File.Delete(tmpXMLfile);
            }
        }
예제 #5
0
        private static void SaveToDB(ClsMannschaften Mannschaften, bool Append = true)
        {
            if (!Append)
            {
                // alle Mannschften löschen
                List <Mannschaften> s = ClsMannschaftenControler.Mannschaften();
                if (s.Any())
                {
                    for (int i = 0; i < s.Count; i++)
                    {
                        ClsMannschaftenControler.DelMannschaft(s[i].Name);
                    }
                }

                // alle Spieler löschen
                List <Spieler> s2 = ClsMannschaftenControler.Spielers();
                if (s2.Any())
                {
                    for (int i = 0; i < s2.Count; i++)
                    {
                        ClsMannschaftenControler.DelSpieler((int)s2[i].ID);
                    }
                }
            }

            // Mannschaften speichen
            if (Mannschaften.Mannschaften.Any())
            {
                for (int i = 0; i < Mannschaften.Mannschaften.Count; i++)
                {
                    ClsMannschaftenControler.AddMannschaft(Mannschaften.Mannschaften[i]);
                }
            }

            // Spieler speichern
            if (Mannschaften.Spieler.Any())
            {
                for (int i = 0; i < Mannschaften.Spieler.Count; i++)
                {
                    ClsMannschaftenControler.AddSpieler(Mannschaften.Spieler[i]);
                }
            }
        }
예제 #6
0
        public static void ImportFromFile(string Datei, bool Append = true)
        {
            // Pfade und filenamen vorbereiten
            string tmp = Path.Combine(MyFilepath + @"\tmp");

            if (Directory.Exists(tmp))
            {
                Directory.Delete(tmp, true);
            }

            Directory.CreateDirectory(tmp);

            string tmpfile = Path.Combine(tmp + @"\Mannschaften.xml");

            string bilderfolder = MyFilepath + @"\Bilder\Mannschaften" + @"\";

            if (!Directory.Exists(bilderfolder))
            {
                Directory.CreateDirectory(bilderfolder);
            }

            // zip file entpacken
            ZipArchive zip = ZipFile.Open(Datei, ZipArchiveMode.Read);

            foreach (ZipArchiveEntry file in zip.Entries)
            {
                string completeFileName = Path.Combine(tmp, file.FullName);
                if (file.Name == "")
                {
                    // Assuming Empty for Directory
                    if (!Directory.Exists(Path.GetDirectoryName(completeFileName)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(completeFileName));
                        continue;
                    }
                }

                file.ExtractToFile(completeFileName, true);
            }

            zip.Dispose();

            // bilder an definierten ort speichern
            List <string> dirbmp = Directory.GetFiles(tmp).ToList();

            foreach (string f in dirbmp)
            {
                string ext = Path.GetExtension(f);
                if (ext != ".xml")
                {
                    string quelle = f;
                    string ziel   = bilderfolder + Path.GetFileName(f);
                    File.Move(quelle, ziel);
                }
            }

            // xml verarbeiten
            ClsMannschaften Mannschaften = new ClsMannschaften();

            XmlSerializer x      = new XmlSerializer(typeof(ClsMannschaften));
            StreamReader  reader = new StreamReader(tmpfile);

            Mannschaften = (ClsMannschaften)x.Deserialize(reader);
            reader.Close();

            // Dateifoldere ändern
            Mannschaften = UpdateFileLocations(Mannschaften, bilderfolder);

            // Fragen ob Anfügen oder überschreiben
            DlgAppend d = new DlgAppend();

            d.Header = "Mannschaften...";

            if (d.ShowDialog() == System.Windows.Forms.DialogResult.Yes)
            {
                // überschreiben
                SaveToDB(Mannschaften, false);
            }

            if (d.ShowDialog() == System.Windows.Forms.DialogResult.No)
            {
                // anhängen
                SaveToDB(Mannschaften);
            }
        }