/// <summary>
        /// Nacte z XML souboru databazi majitelu i psu.
        /// </summary>
        /// <param name="databaseM"></param>
        /// <param name="databaseP"></param>
        /// <param name="sourceFile"></param>
        /// <returns></returns>
        public bool load_XML(Majitele databaseM, Psi databaseP, string sourceFile)
        {
            try
            {
                //  string databasePath = Path.Combine(Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName, "projectData/database.xml");
                string databasePath = sourceFile;

                String[]    majitelArrayData;
                String[]    pesArrayData;
                XmlDocument doc = new XmlDocument();

                FileStream fileStrm = new FileStream(databasePath, FileMode.Open);
                doc.Load(fileStrm);
                fileStrm.Close();

                XmlNode root = doc.DocumentElement;

                foreach (XmlNode node in root.ChildNodes)
                {
                    if (node.Name == "Majitele")
                    {
                        foreach (XmlNode nodeMajitel in node.ChildNodes)
                        {
                            majitelArrayData = new String[10];
                            Int32 i = 0;
                            foreach (XmlNode nodeMajitelElemnts in nodeMajitel)
                            {
                                majitelArrayData[i] = (String)nodeMajitelElemnts.InnerText;
                                i++;
                            }
                            databaseM.Add(new Majitel(majitelArrayData));
                        }
                    }
                    else if (node.Name == "Psi")
                    {
                        foreach (XmlNode nodePes in node.ChildNodes)
                        {
                            pesArrayData = new String[43];
                            Int32 i = 0;
                            foreach (XmlNode nodePesElements in nodePes)
                            {
                                pesArrayData[i] = (String)nodePesElements.InnerText;
                                i++;
                            }
                            databaseP.Add(new Pes(pesArrayData));
                        }
                    }
                }
            }
            catch (XmlException xmlEx)
            {
                Console.WriteLine("{0}", xmlEx.Message);
                return(false);
            }
            catch (FileNotFoundException ex)
            {
                Console.WriteLine("{0}", ex.Message);
                return(false);
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0}", ex.Message);
                return(false);
            }

            return(true);
        }
        public void read_excel_table_temp(Majitele dataM, Psi dataP, string sourceFile, Int32 list)
        {
            Int32 tmp = 0;

            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook    workbook;
            Excel.Worksheet   worksheet;
            Excel.Range       range;
            string            databasePath = sourceFile;

            workbook = excelApp.Workbooks.Open(databasePath);

            worksheet = (Excel.Worksheet)workbook.Sheets.get_Item(list);

            Majitel temp_majitel = new Majitel();
            Pes     temp_pes     = new Pes();

            Int32 row = 0;

            range = worksheet.UsedRange;
            DataTable dt = new DataTable();

            String temp = null;

            for (row = 2; row <= range.Rows.Count; row++)
            {
                DataRow dr = dt.NewRow();

                temp = (range.Cells[row, 1] as Excel.Range).Value2;
                if (temp != null) // excel sloupec clenstvi
                {
                    string tempStr = temp.ToString();
                    if (tempStr[0] == 'N')
                    {
                        temp_majitel.clen = "ne"; // neni clenem klubu
                    }
                    else
                    {
                        temp_majitel.clen = "ano"; // je clenem klubu
                    }
                }
                else
                {
                    temp_majitel.clen = "ano"; // policko by melo byt prazdne - mozna NULL ?!
                }

                //temp = (range.Cells[row, 2] as Excel.Range).Value2;
                temp_pes.ZavodLicence = SetTempFromExcel(range, row, 2);      // excel sloupec zavod-licence-trening

                temp_pes.Jmeno = SetTempFromExcel(range, row, 3);             // excel sloupec jmeno psa

                temp_pes.Plemeno = SetTempFromExcel(range, row, 4);           // excel sloupec plemeno

                temp_pes.Poznamka = SetTempFromExcel(range, row, 5);          // excel sloupec poznamka ZAVODNI SKUPINA !!!!

                temp_pes.Pohlavi = SetTempFromExcel(range, row, 6).ToLower(); // excel sloupec pohlavi

                temp_pes.Platba = SetTempIntFromExcel(range, row, 8);         // excel sloupec platba

                temp_pes.Licence = SetTempFromExcel(range, row, 11);          // excel sloupec licence

                temp = (range.Cells[row, 14] as Excel.Range).Value.ToShortDateString();
                if (temp != null) // excel sloupec datum narozeni
                {
                    temp_pes.Datum = DateTime.ParseExact(temp, Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentCulture);
                }
                else
                {
                    temp_pes.Datum = DateTime.ParseExact(DateTime.MinValue.ToShortDateString(), Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentCulture);
                }

                temp_majitel.firstName = SetTempFromExcel(range, row, 15); // excel sloupec jmeno

                temp_majitel.narodnost = SetTempFromExcel(range, row, 17); // excel sloupec národnost

                temp_majitel.telefon = SetTempFromExcel(range, row, 18);   // excel sloupec telefon

                temp_majitel.email = SetTempFromExcel(range, row, 19);     // excel sloupec email

                temp_pes.Doplatit = 0;

                temp_majitel.id        = dataM.GetNewId();                    // přiřzení ID majiteli
                temp_majitel.penize    = temp_pes.Platba + temp_pes.Doplatit; // součet zaplatil a má zaplatit
                temp_majitel.potvrzeni = "--";                                // implicitně nastaven jako nezaplaceno
                temp_majitel.pocet_psu = 1;

                temp_pes.Id             = dataP.GetNewId();
                temp_pes.Majitel        = temp_majitel.id;
                temp_pes.MajitelJmeno   = temp_majitel.firstName;
                temp_pes.Skupina        = 0;
                temp_pes.StartBeh1      = 0;
                temp_pes.StartBeh1      = 0;
                temp_pes.Diskval        = "---";
                temp_pes.AgilityA0      = 0;
                temp_pes.AgilityA1      = 0;
                temp_pes.SpeedA0        = 0;
                temp_pes.SpeedA1        = 0;
                temp_pes.EnduranceA0    = 0;
                temp_pes.EnduranceA1    = 0;
                temp_pes.EnthusiasmA0   = 0;
                temp_pes.EnthusiasmA1   = 0;
                temp_pes.IntelligenceA0 = 0;
                temp_pes.IntelligenceA1 = 0;
                temp_pes.AgilityB0      = 0;
                temp_pes.AgilityB1      = 0;
                temp_pes.SpeedB0        = 0;
                temp_pes.SpeedB1        = 0;
                temp_pes.EnduranceB0    = 0;
                temp_pes.EnduranceB1    = 0;
                temp_pes.EnthusiasmB0   = 0;
                temp_pes.EnthusiasmB1   = 0;
                temp_pes.IntelligenceB0 = 0;
                temp_pes.IntelligenceB1 = 0;
                temp_pes.Body1          = 0;
                temp_pes.Body2          = 0;
                temp_pes.Dvojice0       = 0;
                temp_pes.Dvojice1       = 0;
                temp_pes.Barva0         = "";
                temp_pes.Barva1         = "";

                tmp = dataM.FindSame(temp_majitel.firstName, temp_majitel.lastName, temp_majitel.email);
                if (tmp < 0)
                {
                    dataM.Add(new Majitel(temp_majitel));
                }
                else
                {
                    Majitel editmajitel = dataM.GetMajitelById(tmp);
                    editmajitel.penize += temp_majitel.penize; // přičtení majiteli platbu za dalšího psa
                    editmajitel.pocet_psu++;
                    dataM.Edit(tmp, editmajitel);
                    temp_pes.Majitel = tmp;
                }

                dataP.Add(new Pes(temp_pes));
            }
            workbook.Close(true, Missing.Value, Missing.Value);
            excelApp.Quit();
        }