/** Extract from zip file to tmp directory */
        private static void ExtractFiles(string competitionName)
        {
            string zipFilePath = ImagePaths.GetZipFile(competitionName);
            string destination = ImagePaths.GetExtractDirectory(competitionName);

            if (Directory.Exists(destination) == false)
            {
                ZipFile.ExtractToDirectory(zipFilePath, destination);
            }
        }
        internal static AbstractCompetition Load(string competitionFileName)
        {
            string competitionDirectory     = ImagePaths.GetExtractDirectory(competitionFileName);
            AbstractCompetition competition = null;

            try
            {
                // Load image order details
                XmlDocument orderingDocument = new XmlDocument();
                orderingDocument.Load(competitionDirectory + "/" + CONTROL_FILENAME);
                XmlNode rootNode         = orderingDocument.FirstChild;
                string  competitionStyle = rootNode["Style"].InnerText;
                string  clubName         = rootNode["Club"].InnerText;
                string  trophyName       = rootNode["Trophy"].InnerText;
                string  competitionKey   = rootNode["CompKey"].InnerText;
                string  resultsKey       = rootNode["ResultsKey"].InnerText;
                bool    scoring          = rootNode["Scoring"].InnerText.ToLower() == "true";

                switch (competitionStyle.ToLower())
                {
                case "panel":
                    competition = LoadPanelCompetition(competitionFileName, competitionDirectory, rootNode, clubName, trophyName, competitionKey, resultsKey);
                    break;

                default:
                    competition = LoadSingleImageCompetition(competitionFileName, competitionDirectory, rootNode, clubName, trophyName, scoring, competitionKey, resultsKey);
                    break;
                }
            }
            catch (Exception e)
            {
                string clubName   = "Competition zip file broken";
                string trophyName = e.Message;
                competition = new Competition(competitionFileName, competitionDirectory, clubName, trophyName, null, null);
            }

            return(competition);
        }