private static AbstractCompetition LoadPanelCompetition(string competitionFileName, string competitionDirectory, XmlNode rootNode, string clubName, string trophyName, string competitionKey, string resultsKey)
        {
            AbstractCompetition competition = new PanelCompetition(competitionFileName, competitionDirectory, clubName, trophyName, competitionKey, resultsKey);
            XmlNode             panelsNode  = rootNode["Panels"];
            int panelPosition = 1;
            var panelList     = new List <CompetitionPanel>();

            foreach (XmlNode eachPanelNode in panelsNode.ChildNodes)
            {
                CompetitionPanel eachPanel = new CompetitionPanel(competition, eachPanelNode, panelPosition);

                int imagePosition = 1;
                foreach (XmlNode eachImageNode in eachPanelNode.ChildNodes)
                {
                    CompetitionImage eachImage = new CompetitionImage(competition, eachImageNode, imagePosition);
                    eachPanel.AddImage(eachImage);
                    imagePosition++;
                }

                CompetitionFactory.WritePanelLayoutImage(competitionFileName, competitionDirectory, eachPanel);

                panelList.Add(eachPanel);
                panelPosition++;
            }
            ((PanelCompetition)competition).SetPanels(panelList);
            return(competition);
        }
        internal static List <CompetitionImage> GetHeldImages(Competition competition, string competitionName)
        {
            List <CompetitionImage> heldImages = new List <CompetitionImage>();

            string           databaseFilePath = ImagePaths.GetDatabaseFile(competitionName);
            SQLiteConnection dbConnection     = new SQLiteConnection("DataSource=" + databaseFilePath + ";Version=3;");

            dbConnection.Open();

            string sql = "SELECT name FROM held_images";

            SQLiteCommand    cmd    = new SQLiteCommand(sql, dbConnection);
            SQLiteDataReader reader = cmd.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    CompetitionImage competitionImage = competition.GetImageObjectById(reader.GetString(0));
                    heldImages.Add(competitionImage);
                }
            }

            dbConnection.Close();

            return(heldImages);
        }
 // Create a CompetitionImage that represents the Panel Image
 internal CompetitionImage GetPanelImage()
 {
     if (this.panelImage == null)
     {
         string           panelTitle       = "Panel " + this.GetPosition();
         CompetitionImage competitionImage = new CompetitionImage(this.competition, this.GetPanelId(), panelTitle, this.panelAuthor, this.GetPosition());
         this.panelImage = competitionImage;
     }
     return(this.panelImage);
 }
        private static AbstractCompetition LoadSingleImageCompetition(string competitionFileName, string competitionDirectory, XmlNode rootNode, string clubName, string trophyName, bool scoring, string competitionKey, string resultsKey)
        {
            AbstractCompetition competition = new Competition(competitionFileName, competitionDirectory, clubName, trophyName, competitionKey, resultsKey);
            XmlNode             imagesNode  = rootNode["Images"];
            int i         = 1;
            var imageList = new List <CompetitionImage>();

            foreach (XmlNode eachImageNode in imagesNode.ChildNodes)
            {
                CompetitionImage eachImage = new CompetitionImage(competition, eachImageNode, i);
                imageList.Add(eachImage);
                i += 1;
            }

            ((Competition)competition).SetImages(imageList);
            ((Competition)competition).SetScoring(scoring);
            return(competition);
        }
 internal void AddImage(CompetitionImage eachImage)
 {
     this.images.Add(eachImage);
 }