コード例 #1
0
        // looks up and returns scrapeddataobject based on Internal GameId (not gamesdb id)
        public ScrapedGameObject GetScrapedGameObject(int GameId, int GdbId)
        {
            //Game link = Game.GetGame(GameId);

            // we have a link record - proceed and generate object
            ScrapedGameObject sgo = new ScrapedGameObject();

            if (GdbId < 1)
            {
                return(null);
            }
            sgo.GdbId = GdbId;

            // attempt to load game data json
            string gPath = AppDomain.CurrentDomain.BaseDirectory + @"Data\Games\" + sgo.GdbId.ToString() + @"\" + sgo.GdbId.ToString() + ".json";

            if (File.Exists(gPath))
            {
                ScrapedGameObjectWeb sgoweb = new ScrapedGameObjectWeb();
                ScrapedGameData      sg     = new ScrapedGameData();
                string jsonString           = File.ReadAllText(gPath);
                try
                {
                    sgoweb = JsonConvert.DeserializeObject <ScrapedGameObjectWeb>(jsonString);
                }
                catch (Exception e)
                {
                    // there was a problem with the file - do nothing
                }
                finally
                {
                    sgo.Data = sgoweb.Data;
                }
            }
            else
            {
                sgo.Data = new ScrapedGameData();
            }

            // populate lists in object
            string baseGameDir = AppDomain.CurrentDomain.BaseDirectory + @"Data\Games\" + sgo.GdbId.ToString();

            sgo.BackCovers  = GetAllFolderFiles(baseGameDir + @"\BackCover");
            sgo.Banners     = GetAllFolderFiles(baseGameDir + @"\Banners");
            sgo.FanArts     = GetAllFolderFiles(baseGameDir + @"\FanArt");
            sgo.FrontCovers = GetAllFolderFiles(baseGameDir + @"\FrontCover");
            sgo.Manuals     = GetAllFolderFiles(baseGameDir + @"\Manual");
            sgo.Medias      = GetAllFolderFiles(baseGameDir + @"\Media");
            sgo.Screenshots = GetAllFolderFiles(baseGameDir + @"\Screenshots");

            // return object
            return(sgo);
        }
コード例 #2
0
        private void LookupScrapeMatched()
        {
            if (GameObj.gdbId != null && GameObj.gdbId > 0)
            {
                var master = MasterView.GetMasterView();
                var entry  = master.Where(a => a.gid == GameObj.gdbId).FirstOrDefault();
                if (entry == null)
                {
                    return;
                }

                tbScrapeData_gameName.Text = entry.GDBTitle;
                tbScrapeData_Year.Text     = entry.GDBYear;

                // get disk data
                //ScrapeDB gd = new ScrapeDB();
                ScrapedGameObject o = ScrapeDB.GetScrapedGameObject(GameObj.gameId, GameObj.gdbId.Value);

                tbScrapeData_Year.Text      = o.Data.Released;
                tbScrapeData_Developer.Text = o.Data.Developer;
                tbScrapeData_Publisher.Text = o.Data.Publisher;

                StringBuilder sbAT = new StringBuilder();
                if (o.Data.AlternateTitles == null)
                {
                    o.Data.AlternateTitles = new List <string>();
                }

                for (int i = 0; i < o.Data.AlternateTitles.Count(); i++)
                {
                    sbAT.Append(o.Data.AlternateTitles[i]);
                    if (i > 0 && i < (o.Data.AlternateTitles.Count() - 1))
                    {
                        sbAT.Append(", ");
                    }
                }
                tbScrapeData_AlternateTitles.Text = sbAT.ToString();

                tbScrapeData_Coop.Text = o.Data.Coop;
                tbScrapeData_ESRB.Text = o.Data.ESRB;

                StringBuilder sbGN = new StringBuilder();
                if (o.Data.Genres == null)
                {
                    o.Data.Genres = new List <string>();
                }

                for (int i = 0; i < o.Data.Genres.Count(); i++)
                {
                    sbGN.Append(o.Data.Genres[i]);
                    if (i > 0 && i < (o.Data.Genres.Count() - 1))
                    {
                        sbGN.Append(", ");
                    }
                }
                tbScrapeData_Genres.Text = sbGN.ToString();

                tbScrapeData_Overview.Text = o.Data.Overview;
                tbScrapeData_Players.Text  = o.Data.Players;

                if (o.GdbId != 0)
                {
                    tbScrapeData_gdbId.Text = o.GdbId.ToString();
                }
            }
        }
コード例 #3
0
        // update sidebar
        public static void UpdateSidebar(int gameId)
        {
            // get an instance of the MainWindow
            MainWindow mw = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();

            // new instance of the LibrarySidebar class
            LibrarySidebar lsb = new LibrarySidebar(gameId);

            /* define all controls that we want to set */

            // scrollviewer
            ScrollViewer sv = (ScrollViewer)mw.FindName("srcSidebar");

            // return out if hidesiderbar db field is true
            if (GlobalSettings.GetHideSidebar() == true)
            {
                sv.Visibility = Visibility.Collapsed;
                return;
            }

            sv.Visibility = Visibility.Visible;

            // set column definitions
            ColumnDefinition cd             = (ColumnDefinition)mw.FindName("sidebarColumn");
            ColumnDefinition colBoxartFront = (ColumnDefinition)mw.FindName("colBoxartFront");
            ColumnDefinition colBoxartBack  = (ColumnDefinition)mw.FindName("colBoxartBack");
            ColumnDefinition colMedia       = (ColumnDefinition)mw.FindName("colMedia");

            cd.Width = new GridLength(0.3, GridUnitType.Star);
            //colBoxartFront.Width = new GridLength(0.5, GridUnitType.Star);
            //colBoxartBack.Width = new GridLength(0.5, GridUnitType.Star);
            //colMedia.Width = new GridLength(0.5, GridUnitType.Star);

            UniformGrid gridManuals      = (UniformGrid)mw.FindName("gridManuals");
            UniformGrid ugridScreenshots = (UniformGrid)mw.FindName("ugridScreenshots");
            UniformGrid ugridFanarts     = (UniformGrid)mw.FindName("ugridFanarts");

            // borders
            Border brdSysInfo = (Border)mw.FindName("brdSidebarSystem");                            // game system info
            Border brdSidebarGameInformation = (Border)mw.FindName("brdSidebarGameInformation");    // main scraping info container

            brdSidebarGameInformation.Visibility = Visibility.Visible;

            Border brdGame = (Border)mw.FindName("brdSidebarGame");
            Border brdSidebarScreenshots = (Border)mw.FindName("brdSidebarScreenshots");
            Border brdSidebarFanArt      = (Border)mw.FindName("brdSidebarFanArt");
            Border brdSidebarOverview    = (Border)mw.FindName("brdSidebarOverview");

            Border brdManuals = (Border)mw.FindName("brdManuals");

            // expanders
            Expander expSysInfo         = (Expander)mw.FindName("expSysInfo");
            Expander expGameInfo        = (Expander)mw.FindName("expGameInfo");
            Expander expGameInformation = (Expander)mw.FindName("expGameInformation");
            Expander expOverview        = (Expander)mw.FindName("expOverview");
            Expander expManuals         = (Expander)mw.FindName("expManuals");

            // labels
            Label lblGameName      = (Label)mw.FindName("lblGameName");
            Label lblIsFavorite    = (Label)mw.FindName("lblIsFavorite");
            Label lblLastLaunched  = (Label)mw.FindName("lblLastLaunched");
            Label lblSessionLength = (Label)mw.FindName("lblSessionLength");
            Label lblTimesPlayed   = (Label)mw.FindName("lblTimesPlayed");
            Label lblTotalTime     = (Label)mw.FindName("lblTotalTime");

            Label lblAltNames    = (Label)mw.FindName("lblAltNames");
            Label lblReleaseDate = (Label)mw.FindName("lblReleaseDate");
            Label lblPlayers     = (Label)mw.FindName("lblPlayers");
            Label lblCoop        = (Label)mw.FindName("lblCoop");
            Label lblGenres      = (Label)mw.FindName("lblGenres");
            Label lblDeveloper   = (Label)mw.FindName("lblDeveloper");
            Label lblPublisher   = (Label)mw.FindName("lblPublisher");
            Label lblESRB        = (Label)mw.FindName("lblESRB");

            Label lblAltNamesTitle    = (Label)mw.FindName("lblAltNamesTitle");
            Label lblReleaseDateTitle = (Label)mw.FindName("lblReleaseDateTitle");
            Label lblPlayersTitle     = (Label)mw.FindName("lblPlayersTitle");
            Label lblCoopTitle        = (Label)mw.FindName("lblCoopTitle");
            Label lblGenresTitle      = (Label)mw.FindName("lblGenresTitle");
            Label lblDeveloperTitle   = (Label)mw.FindName("lblDeveloperTitle");
            Label lblPublisherTitle   = (Label)mw.FindName("lblPublisherTitle");
            Label lblESRBTitle        = (Label)mw.FindName("lblESRBTitle");

            TextBlock tbOverview = (TextBlock)mw.FindName("tbOverview");


            // listview
            ListView Screenshots = (ListView)mw.FindName("Screenshots");

            // images
            Image imgBoxartFront = (Image)mw.FindName("imgBoxartFront");
            Image imgBoxartBack  = (Image)mw.FindName("imgBoxartBack");
            Image imgBanner      = (Image)mw.FindName("imgBanner");
            Image imgMedia       = (Image)mw.FindName("imgMedia");

            // lists of gamesdb related controls
            List <Image> gdbImages = new List <Image>
            {
                imgBoxartFront,
                imgBoxartBack,
                imgBanner,
                imgMedia
            };
            List <Label> gdbLabels = new List <Label>
            {
                lblAltNames,
                lblAltNamesTitle,
                lblReleaseDate,
                lblReleaseDateTitle,
                lblPlayers,
                lblPlayersTitle,
                lblCoop,
                lblCoopTitle,
                lblGenres,
                lblGenresTitle,
                lblDeveloper,
                lblDeveloperTitle,
                lblPublisher,
                lblPublisherTitle
            };

            // screenshots
            Image ss1  = (Image)mw.FindName("ss1");
            Image ss2  = (Image)mw.FindName("ss2");
            Image ss3  = (Image)mw.FindName("ss3");
            Image ss4  = (Image)mw.FindName("ss4");
            Image ss5  = (Image)mw.FindName("ss5");
            Image ss6  = (Image)mw.FindName("ss6");
            Image ss7  = (Image)mw.FindName("ss7");
            Image ss8  = (Image)mw.FindName("ss8");
            Image ss9  = (Image)mw.FindName("ss9");
            Image ss10 = (Image)mw.FindName("ss10");
            Image ss11 = (Image)mw.FindName("ss11");
            Image ss12 = (Image)mw.FindName("ss12");
            Image ss13 = (Image)mw.FindName("ss13");
            Image ss14 = (Image)mw.FindName("ss14");
            Image ss15 = (Image)mw.FindName("ss15");
            Image ss16 = (Image)mw.FindName("ss16");
            Image ss17 = (Image)mw.FindName("ss17");
            Image ss18 = (Image)mw.FindName("ss18");
            Image ss19 = (Image)mw.FindName("ss19");
            Image ss20 = (Image)mw.FindName("ss20");
            Image ss21 = (Image)mw.FindName("ss21");
            Image ss22 = (Image)mw.FindName("ss22");
            Image ss23 = (Image)mw.FindName("ss23");
            Image ss24 = (Image)mw.FindName("ss24");
            Image ss25 = (Image)mw.FindName("ss25");
            Image ss26 = (Image)mw.FindName("ss26");
            Image ss27 = (Image)mw.FindName("ss27");
            Image ss28 = (Image)mw.FindName("ss28");
            Image ss29 = (Image)mw.FindName("ss29");
            Image ss30 = (Image)mw.FindName("ss30");
            Image ss31 = (Image)mw.FindName("ss31");
            Image ss32 = (Image)mw.FindName("ss32");
            Image ss33 = (Image)mw.FindName("ss33");
            Image ss34 = (Image)mw.FindName("ss34");
            Image ss35 = (Image)mw.FindName("ss35");
            Image ss36 = (Image)mw.FindName("ss36");

            List <Image> ss = new List <Image>
            {
                ss1, ss2, ss3, ss4, ss5, ss6, ss7, ss8, ss9, ss10, ss11, ss12, ss13, ss14, ss15, ss16, ss17, ss18, ss19, ss20, ss21, ss22, ss23, ss24, ss25, ss26, ss27, ss28, ss29, ss30, ss31, ss32, ss33, ss34, ss35, ss36
            };

            foreach (Image i in ss)
            {
                i.Visibility = Visibility.Collapsed;
            }


            // fanart
            Image fa1  = (Image)mw.FindName("fa1");
            Image fa2  = (Image)mw.FindName("fa2");
            Image fa3  = (Image)mw.FindName("fa3");
            Image fa4  = (Image)mw.FindName("fa4");
            Image fa5  = (Image)mw.FindName("fa5");
            Image fa6  = (Image)mw.FindName("fa6");
            Image fa7  = (Image)mw.FindName("fa7");
            Image fa8  = (Image)mw.FindName("fa8");
            Image fa9  = (Image)mw.FindName("fa9");
            Image fa10 = (Image)mw.FindName("fa10");
            Image fa11 = (Image)mw.FindName("fa11");
            Image fa12 = (Image)mw.FindName("fa12");
            Image fa13 = (Image)mw.FindName("fa13");
            Image fa14 = (Image)mw.FindName("fa14");
            Image fa15 = (Image)mw.FindName("fa15");
            Image fa16 = (Image)mw.FindName("fa16");
            Image fa17 = (Image)mw.FindName("fa17");
            Image fa18 = (Image)mw.FindName("fa18");
            Image fa19 = (Image)mw.FindName("fa19");
            Image fa20 = (Image)mw.FindName("fa20");
            Image fa21 = (Image)mw.FindName("fa21");
            Image fa22 = (Image)mw.FindName("fa22");
            Image fa23 = (Image)mw.FindName("fa23");
            Image fa24 = (Image)mw.FindName("fa24");
            Image fa25 = (Image)mw.FindName("fa25");
            Image fa26 = (Image)mw.FindName("fa26");
            Image fa27 = (Image)mw.FindName("fa27");
            Image fa28 = (Image)mw.FindName("fa28");
            Image fa29 = (Image)mw.FindName("fa29");
            Image fa30 = (Image)mw.FindName("fa30");
            Image fa31 = (Image)mw.FindName("fa31");
            Image fa32 = (Image)mw.FindName("fa32");
            Image fa33 = (Image)mw.FindName("fa33");
            Image fa34 = (Image)mw.FindName("fa34");
            Image fa35 = (Image)mw.FindName("fa35");
            Image fa36 = (Image)mw.FindName("fa36");

            List <Image> fa = new List <Image>
            {
                fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, fa10, fa11, fa12, fa13, fa14, fa15, fa16, fa17, fa18, fa19, fa20, fa21, fa22, fa23, fa24, fa25, fa26, fa27, fa28, fa29, fa30, fa31, fa32, fa33, fa34, fa35, fa36
            };

            foreach (Image i in fa)
            {
                i.Visibility = Visibility.Collapsed;
            }

            // system info
            Label     lblSysName     = (Label)mw.FindName("lblSystemName");
            Image     sysImage       = (Image)mw.FindName("imgSystemImage");
            TextBlock tblockSysImage = (TextBlock)mw.FindName("tblockSystemDesc");

            string imageFileName = @"Data\Graphics\Systems\" + lsb.SystemCode.ToLower() + ".jpg";

            // game stats
            lblGameName.Content = lsb.GameName;
            if (lsb.IsFavorite == true)
            {
                lblIsFavorite.Content = "YES";
            }
            else
            {
                lblIsFavorite.Content = "NO";
            }

            string lp = lsb.LastPlayed.ToString("yyyy-MM-dd HH:mm");

            if (lp == "0001-01-01 00:00")
            {
                lblLastLaunched.Content = "Never";
            }
            else
            {
                lblLastLaunched.Content = lp;
            }

            // times played
            lblTimesPlayed.Content = lsb.TimesPlayed;

            // last session time
            lblSessionLength.Content = GetDatetimeDifference(lsb.LastPlayed, lsb.LastFinished);
            // Total game time
            lblTotalTime.Content = FormatMinutesToString(lsb.TotalPlayTime);

            // system info
            expSysInfo.Header   = lsb.SystemName;
            tblockSysImage.Text = lsb.SystemDescription;
            BitmapImage s = new BitmapImage();

            s.BeginInit();
            s.UriSource = new Uri(imageFileName, UriKind.Relative);
            s.EndInit();
            sysImage.Source = s;

            // Game info (scraped)
            // get the link table record

            GamesLibraryScrapedContent gd = new GamesLibraryScrapedContent();

            Game game = Game.GetGame(gameId);


            if (game.gdbId == null || game.gdbId == 0)
            {
                // no gdb data has been scraped - hide controls
                foreach (Image i in gdbImages)
                {
                    i.Visibility = Visibility.Collapsed;
                }
                foreach (Label l in gdbLabels)
                {
                    l.Visibility = Visibility.Collapsed;
                }
                expGameInformation.Header            = "Scraped Information";
                brdSidebarGameInformation.Visibility = Visibility.Collapsed;
                brdSidebarScreenshots.Visibility     = Visibility.Collapsed;
                brdSidebarFanArt.Visibility          = Visibility.Collapsed;
                brdSidebarOverview.Visibility        = Visibility.Collapsed;
                brdManuals.Visibility = Visibility.Collapsed;
                return;
            }
            else
            {
                ScrapedGameObject o = gd.GetScrapedGameObject(gameId, game.gdbId.Value);

                // link is there - SET DATA and control states
                bool isGameInfoData    = false;                         //GameInfo Expander
                bool isScreenshotsData = false;                         //Screenshots Expander
                bool isFanrtsData      = false;                         //Fanrt expander
                bool isManualsData     = false;                         //manuals expander

                // Game Title
                if (o.Data.Title == null || o.Data.Title == "")
                {
                    expGameInformation.Header = "Scraped Information";
                }
                else
                {
                    // Expander title
                    expGameInformation.Header = o.Data.Title;
                }

                // Back Cover Image
                if (o.BackCovers == null || o.BackCovers.Count == 0)
                {
                    imgBoxartBack.Source = null;
                    imgBoxartBack.SetVisibility();
                }
                else
                {
                    isGameInfoData = true;
                    // boxart - back
                    SetImage(imgBoxartBack, o.BackCovers.FirstOrDefault(), UriKind.Absolute);
                    imgBoxartBack.SetVisibility();
                }

                // Banner Image
                if (o.Banners == null || o.Banners.Count == 0)
                {
                    imgBanner.Source = null;
                    imgBanner.SetVisibility();
                }
                else
                {
                    isGameInfoData = true;
                    // banner (just take one)
                    List <string> banners = new List <string>();
                    SetImage(imgBanner, o.Banners.FirstOrDefault(), UriKind.Absolute);
                    imgBanner.SetVisibility();
                }

                // Front Cover Image
                if (o.FrontCovers == null || o.FrontCovers.Count == 0)
                {
                    imgBoxartFront.Source = null;
                    imgBoxartFront.SetVisibility();
                }
                else
                {
                    isGameInfoData = true;
                    // boxart - front
                    SetImage(imgBoxartFront, o.FrontCovers.FirstOrDefault(), UriKind.Absolute);
                    imgBoxartFront.SetVisibility();
                }

                // Media Image
                if (o.Medias == null || o.Medias.Count == 0)
                {
                    imgMedia.Source = null;
                    imgMedia.SetVisibility();
                }
                else
                {
                    isGameInfoData = true;
                    // media image
                    SetImage(imgMedia, o.Medias.FirstOrDefault(), UriKind.Absolute);
                    imgMedia.SetVisibility();
                }

                // Alternate Game Titles
                if (o.Data.AlternateTitles == null || o.Data.AlternateTitles.Count == 0)
                {
                    lblAltNames.Content         = null;
                    lblAltNamesTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData              = true;
                    lblAltNames.Content         = string.Join(", ", (o.Data.AlternateTitles).ToArray());
                    lblAltNames.Visibility      = Visibility.Visible;
                    lblAltNamesTitle.Visibility = Visibility.Visible;
                }

                // Release Date
                if (o.Data.Released == null || o.Data.Released == "")
                {
                    lblReleaseDate.Content         = null;
                    lblReleaseDateTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData                 = true;
                    lblReleaseDate.Content         = o.Data.Released;
                    lblReleaseDate.Visibility      = Visibility.Visible;
                    lblReleaseDateTitle.Visibility = Visibility.Visible;
                }

                // Coop
                if (o.Data.Coop == null || o.Data.Coop == "")
                {
                    lblCoop.Content         = null;
                    lblCoopTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData          = true;
                    lblCoop.Content         = o.Data.Coop;
                    lblCoop.Visibility      = Visibility.Visible;
                    lblCoopTitle.Visibility = Visibility.Visible;
                }

                // Developer
                if (o.Data.Developer == null || o.Data.Developer == "")
                {
                    lblDeveloper.Content         = null;
                    lblDeveloperTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData               = true;
                    lblDeveloper.Content         = o.Data.Developer;
                    lblDeveloper.Visibility      = Visibility.Visible;
                    lblDeveloperTitle.Visibility = Visibility.Visible;
                }

                // Publisher
                if (o.Data.Publisher == null || o.Data.Publisher == "")
                {
                    lblPublisher.Content         = null;
                    lblPublisherTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData               = true;
                    lblPublisher.Content         = o.Data.Publisher;
                    lblPublisher.Visibility      = Visibility.Visible;
                    lblPublisherTitle.Visibility = Visibility.Visible;
                }

                // Genres
                if (o.Data.Genres == null || o.Data.Genres.Count == 0)
                {
                    lblGenres.Content         = null;
                    lblGenresTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData            = true;
                    lblGenres.Content         = string.Join(", ", (o.Data.Genres).ToArray());
                    lblGenres.Visibility      = Visibility.Visible;
                    lblGenresTitle.Visibility = Visibility.Visible;
                }

                // ESRB Rating
                if (o.Data.ESRB == null || o.Data.ESRB == "")
                {
                    lblESRB.Content         = null;
                    lblESRBTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData          = true;
                    lblESRB.Content         = o.Data.ESRB;
                    lblESRB.Visibility      = Visibility.Visible;
                    lblESRBTitle.Visibility = Visibility.Visible;
                }

                // Number of players
                if (o.Data.Players == null || o.Data.Players == "")
                {
                    lblPlayers.Content         = null;
                    lblPlayersTitle.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData             = true;
                    lblPlayers.Content         = o.Data.Players;
                    lblPlayers.Visibility      = Visibility.Visible;
                    lblPlayersTitle.Visibility = Visibility.Visible;
                }

                // game overview (description)
                if (o.Data.Overview == null || o.Data.Overview == "")
                {
                    tbOverview.Text = null;
                    brdSidebarOverview.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isGameInfoData  = true;
                    tbOverview.Text = o.Data.Overview;
                    brdSidebarOverview.Visibility = Visibility.Visible;
                }

                // Fanart Images
                if (o.FanArts == null || o.FanArts.Count == 0)
                {
                    brdSidebarFanArt.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isFanrtsData = true;
                    int fanCount = o.FanArts.Count;
                    ugridFanarts.Columns        = DetermineUniformGridColumns(fanCount);
                    brdSidebarFanArt.Visibility = Visibility.Visible;
                    List <string> fshots = o.FanArts;
                    String[]      arr    = fshots.ToArray();
                    int           i      = 0;
                    while (i < fa.Count)
                    {
                        // check whether we have run out of images
                        if (i >= fshots.Count || fshots == null)
                        {
                            break;
                        }
                        // populate screenshot images
                        string path = arr[i];
                        Image  img  = (Image)mw.FindName("fa" + (i + 1).ToString());
                        SetImage(img, path, UriKind.Absolute);
                        img.SetVisibility();
                        i++;
                    }
                }

                // Screenshot Images
                if (o.Screenshots == null || o.Screenshots.Count == 0)
                {
                    brdSidebarScreenshots.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isScreenshotsData = true;
                    int screenCount = o.Screenshots.Count;
                    ugridScreenshots.Columns         = DetermineUniformGridColumns(screenCount);
                    brdSidebarScreenshots.Visibility = Visibility.Visible;
                    List <string> sshots = o.Screenshots;
                    String[]      arr    = sshots.ToArray();
                    int           i      = 0;
                    while (i < ss.Count)
                    {
                        // check whether we have run out of images
                        if (i >= sshots.Count || sshots == null)
                        {
                            break;
                        }
                        // populate screenshot images
                        string path = arr[i];
                        Image  img  = (Image)mw.FindName("ss" + (i + 1).ToString());
                        SetImage(img, path, UriKind.Absolute);
                        img.SetVisibility();
                        i++;
                    }
                }

                // Manuals (external documents)
                if (o.Manuals == null || o.Manuals.Count == 0)
                {
                    brdManuals.Visibility = Visibility.Collapsed;
                }
                else
                {
                    isManualsData         = true;
                    brdManuals.Visibility = Visibility.Visible;
                    // get number of manuals in the directory
                    int manCount = o.Manuals.Count;
                    // disable buttons that are not needed and setup the buttons that are required
                    int c = 1;
                    while (c <= 20)
                    {
                        Button b = (Button)mw.FindName("btnMan" + c);
                        if ((c - 1) < manCount)
                        {
                            // activate button
                            b.Visibility = Visibility.Visible;
                            // get just filename
                            string path = Path.GetFileName(o.Manuals[c - 1]);
                            b.Content  = path; // "Man " + c.ToString();
                            b.ToolTip  = o.Manuals[c - 1];
                            b.FontSize = 8;
                        }
                        else
                        {
                            // hide button
                            b.Visibility = Visibility.Collapsed;
                        }
                        c++;
                    }
                }

                // set border visibilities
                if (isGameInfoData == false)
                {
                    brdSidebarGameInformation.Visibility = Visibility.Collapsed;
                }
                else
                {
                    brdSidebarGameInformation.Visibility = Visibility.Visible;
                }
                if (isFanrtsData == false)
                {
                    brdSidebarFanArt.Visibility = Visibility.Collapsed;
                }
                else
                {
                    brdSidebarFanArt.Visibility = Visibility.Visible;
                }
                if (isScreenshotsData == false)
                {
                    brdSidebarScreenshots.Visibility = Visibility.Collapsed;
                }
                else
                {
                    brdSidebarScreenshots.Visibility = Visibility.Visible;
                }
                if (isManualsData == false)
                {
                    brdManuals.Visibility = Visibility.Collapsed;
                }
                else
                {
                    brdManuals.Visibility = Visibility.Visible;
                }
            }
        }