/// <summary>
        /// Find the comissioning file.
        /// </summary>
        /// <param name="serial">Serial number of the device.</param>
        /// <param name="basicDirectory">Basic derictory to search. (Use other constructor to use defaut directory).</param>
        public FindComissioningFile(int serial, string basicDirectory)
        {
            DateTime start = DateTime.Now;

            SerialNumber = serial;
            Elements     = new List <CommissionElement>();
            try
            {
                IEnumerable <string> installDirectories = Directory.GetDirectories(basicDirectory);
                foreach (var currentDirectory in installDirectories)
                {
                    DirectoryInfo currentInfo   = new DirectoryInfo(currentDirectory);
                    string        directoryName = currentInfo.Name;


                    int directoryVal = 0;
                    if (!int.TryParse(directoryName, out directoryVal))
                    {
                        continue;
                    }

                    //Find whether the folder is a placement folder.. those folders always begin by a number.
                    if (char.IsDigit(directoryName[0]))
                    {
                        IEnumerable <string> install = Directory.GetDirectories(currentDirectory); /*.Where(s => s.Contains(propertyNumber));*/
                        foreach (var intribe in install)
                        {
                            string[] installIntribe = Directory.GetDirectories(intribe, "inbetriebnahme", SearchOption.AllDirectories);

                            foreach (var intribefilesDirectory in installIntribe)
                            {
                                int      installationYear = 0;
                                string[] dataFromPath     = intribefilesDirectory.Split('\\');

                                string year = dataFromPath[5];
                                int.TryParse(year, out installationYear);
                                YearOfInstallation = installationYear;

                                PDAInstallationNumBer = dataFromPath[7];

                                string[] files = Directory.GetFiles(intribefilesDirectory, "*.xml", SearchOption.AllDirectories);

                                foreach (var file in files)
                                {
                                    long     rnn          = 0;
                                    string[] dataFromFile = file.Split('\\');
                                    string[] extractDate  = dataFromFile[dataFromFile.Length - 1].Split('_');
                                    string   one          = extractDate[0];
                                    if (!long.TryParse(extractDate[0], out rnn))
                                    {
                                        continue;
                                    }
                                    Console.WriteLine(file);
                                    if (!TryLoadXmlFile(file))
                                    {
                                        Console.WriteLine("error in xml file.");
                                        continue;
                                    }

                                    if (FindSerial(file, serial))
                                    {
                                        //FullPath = intribefilesDirectory;
                                        FullPath         = file;
                                        InstallationDate = new DateTime(int.Parse(extractDate[3]), int.Parse(extractDate[2]), int.Parse(extractDate[1]), int.Parse(extractDate[4]), int.Parse(extractDate[5]), int.Parse(extractDate[6]));

                                        CommissionElement element = new CommissionElement();
                                        element.ArticleNumber      = ArticleNumber;
                                        element.SerialNumber       = serial;
                                        element.YearOfInstallation = YearOfInstallation;
                                        element.Floor               = Floor;
                                        element.NumAppart           = NumAppart;
                                        element.TypeOfFloor         = TypeOfFloor;
                                        element.FullPath            = FullPath;
                                        element.PropertyNumber      = PropertyNumber;
                                        element.EndOfBillingDate    = EndOfBillingDate;
                                        element.StartOfCountingdate = StartOfCountingdate;
                                        element.RNN = RNN;
                                        element.InstallationDate      = InstallationDate;
                                        element.PDAInstallationNumBer = PDAInstallationNumBer;

                                        Elements.Add(element);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            DateTime fin       = DateTime.Now;
            TimeSpan totalTime = fin - start;
        }
        //public FindComissioningFile(string propertyNumber, int article, int serial, string[] directories)
        //{
        //    SerialNumber   = serial;
        //    ArticleNumber  = article;
        //    PropertyNumber = propertyNumber;
        //    Elements = new List<CommissionElement>();
        //    try
        //    {

        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception("Error while searching file", ex);
        //    }
        //}
        /// <summary>
        /// Find the comissioning file.
        /// </summary>
        /// <param name="propertyNumber">Property number of where the device is.</param>
        /// <param name="article">Article number of the device.</param>
        /// <param name="serial">Serial number of the device.</param>
        /// <param name="basicDirectory">Basic derictory to search. (Use other constructor to use defaut directory).</param>
        public FindComissioningFile(string propertyNumber, int article, int serial, string basicDirectory)
        {
            PropertyNumber = propertyNumber;
            ArticleNumber  = article;
            SerialNumber   = serial;
            Elements       = new List <CommissionElement>();

            try
            {
                IEnumerable <string> installDirectories = Directory.GetDirectories(basicDirectory);

                foreach (var currentDirectory in installDirectories)
                {
                    DirectoryInfo currentInfo   = new DirectoryInfo(currentDirectory);
                    string        directoryName = currentInfo.Name;
                    int           directoryVal  = 0;

                    if (!int.TryParse(directoryName, out directoryVal))
                    {
                        continue;
                    }

                    IEnumerable <string> install = Directory.GetDirectories(currentDirectory).Where(s => s.Contains(propertyNumber));
                    foreach (var intribe in install)
                    {
                        string[] installIntribe = Directory.GetDirectories(intribe, "inbetriebnahme", SearchOption.AllDirectories);

                        foreach (var intribefilesDirectory in installIntribe)
                        {
                            int      installationYear = 0;
                            string[] dataFromPath     = intribefilesDirectory.Split('\\');

                            string year = dataFromPath[5];
                            int.TryParse(year, out installationYear);
                            YearOfInstallation    = installationYear;
                            PDAInstallationNumBer = dataFromPath[7];

                            string[] files = Directory.GetFiles(intribefilesDirectory, "*.xml", SearchOption.AllDirectories);

                            foreach (var file in files)
                            {
                                long     rnn          = 0;
                                string[] dataFromFile = file.Split('\\');
                                string[] extractDate  = dataFromFile[dataFromFile.Length - 1].Split('_');
                                string   one          = extractDate[0];
                                if (!long.TryParse(extractDate[0], out rnn))
                                {
                                    continue;
                                }

                                if (FindSerial(file, serial, article))
                                {
                                    //FullPath = intribefilesDirectory;
                                    FullPath = file;
                                    //TO DO tryparse de la date


                                    InstallationDate = new DateTime(int.Parse(extractDate[3]), int.Parse(extractDate[2]), int.Parse(extractDate[1]), int.Parse(extractDate[4]), int.Parse(extractDate[5]), int.Parse(extractDate[6]));

                                    CommissionElement element = new CommissionElement();
                                    element.ArticleNumber      = article;
                                    element.SerialNumber       = serial;
                                    element.YearOfInstallation = YearOfInstallation;
                                    element.Floor               = Floor;
                                    element.NumAppart           = NumAppart;
                                    element.TypeOfFloor         = TypeOfFloor;
                                    element.FullPath            = FullPath;
                                    element.PropertyNumber      = propertyNumber;
                                    element.EndOfBillingDate    = EndOfBillingDate;
                                    element.StartOfCountingdate = StartOfCountingdate;
                                    element.RNN = RNN;
                                    element.InstallationDate      = InstallationDate;
                                    element.PDAInstallationNumBer = PDAInstallationNumBer;

                                    Elements.Add(element);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0} - {1} - {2}", propertyNumber, article, serial);
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
                throw new Exception("Error while searching file", ex);
            }
        }