예제 #1
0
        private async void makeGame(StorageFolder gf, CategoryType category, SubcategoryType subcategory)
        {
            IReadOnlyList <StorageFile> gameFiles = await gf.GetFilesAsync();

            ObservableCollection <string> executables, textfiles;

            try {
                executables = (ObservableCollection <string>)(from f in gameFiles where f.Name.EndsWith(".exe") select f.Path);
            }
            catch (InvalidOperationException e) {
                executables = null;
            }

            try {
                textfiles = (ObservableCollection <string>)(from f in gameFiles where f.Name.EndsWith(".txt") select f.Path);
            }
            catch (InvalidOperationException e) {
                textfiles = null;
            }

            var g = new GameType(gf.Name.Replace(" ", "-"),
                                 gf.Name,
                                 "Assets/LightGray.png",
                                 "A game",
                                 executables,
                                 textfiles,
                                 category,
                                 subcategory
                                 );

            category.Items.Add(g);
        }
예제 #2
0
        private async void makeSubcategories(CategoryType category)
        {
            StorageFolder cfolder = await StorageFolder.GetFolderFromPathAsync(category.Folder);

            IReadOnlyList <StorageFolder> folders = await cfolder.GetFoldersAsync();

            foreach (StorageFolder f in folders)
            {
                if (f.Name.StartsWith("zzz"))
                {
                    continue;
                }

                var s = new SubcategoryType(f.Name.Replace(" ", "-"),
                                            f.Name,
                                            "Assets/DarkGray.png",
                                            "A subcategory",
                                            f.Path
                                            );

                category.Subcategories.Add(s);

                makeGames(category, s);
            }
        }
예제 #3
0
        private void jsonToData(string json)
        {
            JsonObject state = JsonObject.Parse(json);

            foreach (var c in state["Categories"].GetArray())
            {
                JsonObject   cObj     = c.GetObject();
                CategoryType category = new CategoryType(cObj["Title"].GetString().Replace(" ", "-"),
                                                         cObj["Title"].GetString(),
                                                         "Assets/DarkGray.png",
                                                         cObj["Description"].GetString(),
                                                         cObj["Folder"].GetString()
                                                         );

                //DataSource.AddGroup(category);
                this.AllGroups.Add(category);

                foreach (var s in cObj["Subcategories"].GetArray())
                {
                    JsonObject      sObj        = s.GetObject();
                    SubcategoryType subcategory = new SubcategoryType(sObj["Title"].GetString().Replace(" ", "-"),
                                                                      sObj["Title"].GetString(),
                                                                      "Assets/DarkGray.png",
                                                                      sObj["Description"].GetString(),
                                                                      sObj["Folder"].GetString()
                                                                      );
                    category.Subcategories.Add(subcategory);
                }

                foreach (var g in cObj["Games"].GetArray())
                {
                    JsonObject gObj = g.GetObject();

                    ObservableCollection <string> executables = new ObservableCollection <string>();
                    foreach (var exe in gObj["Executables"].GetArray())
                    {
                        executables.Add(exe.GetString());
                    }

                    ObservableCollection <string> textfiles = new ObservableCollection <string>();
                    foreach (var txt in gObj["Textfiles"].GetArray())
                    {
                        textfiles.Add(txt.Stringify());
                    }

                    GameType game = new GameType(gObj["Title"].GetString().Replace(" ", "-"),
                                                 gObj["Title"].GetString(),
                                                 "Assets/DarkGray.png",
                                                 gObj["Description"].GetString(),
                                                 executables,
                                                 textfiles,
                                                 category,
                                                 category.Subcategories.FirstOrDefault(subcat => gObj["Subcategory"].GetString() == subcat.Title)
                                                 );

                    category.Items.Add(game);
                }
            }
        }
예제 #4
0
        private async void makeGames(CategoryType category, SubcategoryType subcategory = null)
        {
            IReadOnlyList <StorageFolder> folders;

            if (subcategory != null)
            {
                StorageFolder sfolder = await StorageFolder.GetFolderFromPathAsync(subcategory.Folder);

                folders = await sfolder.GetFoldersAsync();
            }
            else
            {
                StorageFolder cfolder = await StorageFolder.GetFolderFromPathAsync(category.Folder);

                folders = await cfolder.GetFoldersAsync();
            }

            foreach (StorageFolder gf in folders)
            {
                makeGame(gf, category, subcategory);
            }
        }
예제 #5
0
        private void jsonToData(string json)
        {
            JsonObject state = JsonObject.Parse(json);

            foreach (var c in state["Categories"].GetArray())
            {
                JsonObject cObj = c.GetObject();
                CategoryType category = new CategoryType(cObj["Title"].GetString().Replace(" ", "-"),
                                    cObj["Title"].GetString(),
                                    "Assets/DarkGray.png",
                                    cObj["Description"].GetString(),
                                    cObj["Folder"].GetString()
                                    );

                //DataSource.AddGroup(category);
                this.AllGroups.Add(category);

                foreach (var s in cObj["Subcategories"].GetArray())
                {
                    JsonObject sObj = s.GetObject();
                    SubcategoryType subcategory = new SubcategoryType(sObj["Title"].GetString().Replace(" ", "-"),
                                        sObj["Title"].GetString(),
                                        "Assets/DarkGray.png",
                                        sObj["Description"].GetString(),
                                        sObj["Folder"].GetString()
                                        );
                    category.Subcategories.Add(subcategory);
                }

                foreach (var g in cObj["Games"].GetArray())
                {
                    JsonObject gObj = g.GetObject();

                    ObservableCollection<string> executables = new ObservableCollection<string>();
                    foreach (var exe in gObj["Executables"].GetArray())
                    {
                        executables.Add(exe.GetString());
                    }

                    ObservableCollection<string> textfiles = new ObservableCollection<string>();
                    foreach (var txt in gObj["Textfiles"].GetArray())
                    {
                        textfiles.Add(txt.Stringify());
                    }

                    GameType game = new GameType(gObj["Title"].GetString().Replace(" ", "-"),
                                        gObj["Title"].GetString(),
                                        "Assets/DarkGray.png",
                                        gObj["Description"].GetString(),
                                        executables,
                                        textfiles,
                                        category,
                                        category.Subcategories.FirstOrDefault(subcat => gObj["Subcategory"].GetString() == subcat.Title)
                                        );

                    category.Items.Add(game);
                }
            }
        }
예제 #6
0
        private async void makeGames(CategoryType category, SubcategoryType subcategory=null)
        {   
            IReadOnlyList<StorageFolder> folders;
            if (subcategory != null)
            {
                StorageFolder sfolder = await StorageFolder.GetFolderFromPathAsync(subcategory.Folder);
                folders = await sfolder.GetFoldersAsync();
            }
            else
            {
                StorageFolder cfolder = await StorageFolder.GetFolderFromPathAsync(category.Folder);
                folders = await cfolder.GetFoldersAsync();
            }

            foreach (StorageFolder gf in folders)
            {
                makeGame(gf, category, subcategory);
            }
        }
예제 #7
0
        private async void makeGame(StorageFolder gf, CategoryType category, SubcategoryType subcategory)
        { 
                IReadOnlyList<StorageFile> gameFiles = await gf.GetFilesAsync();

                ObservableCollection<string> executables, textfiles;

                try {
                    executables = (ObservableCollection<string>)(from f in gameFiles where f.Name.EndsWith(".exe") select f.Path);
                }
                catch (InvalidOperationException e) {
                    executables = null;
                }

                try {
                    textfiles = (ObservableCollection<string>)(from f in gameFiles where f.Name.EndsWith(".txt") select f.Path);
                }
                catch (InvalidOperationException e) {
                    textfiles = null;
                }

                var g = new GameType(gf.Name.Replace(" ", "-"),
                            gf.Name,
                            "Assets/LightGray.png",
                            "A game",
                            executables,
                            textfiles,
                            category,
                            subcategory
                            );

                category.Items.Add(g);
        }
예제 #8
0
        private async void makeSubcategories(CategoryType category)
        {
            StorageFolder cfolder = await StorageFolder.GetFolderFromPathAsync(category.Folder);
            IReadOnlyList<StorageFolder> folders = await cfolder.GetFoldersAsync();

            foreach (StorageFolder f in folders)
            {
                if (f.Name.StartsWith("zzz"))
                    continue;

                var s = new SubcategoryType(f.Name.Replace(" ", "-"),
                            f.Name,
                            "Assets/DarkGray.png",
                            "A subcategory",
                            f.Path
                            );

                category.Subcategories.Add(s);

                makeGames(category, s);
            }
        }
예제 #9
0
 public GameType(String uniqueId, String title, String imagePath, String description, ObservableCollection<string> executables, ObservableCollection<string> textfiles, CategoryType category, SubcategoryType subcategory)
     : base(uniqueId, title, imagePath, description)
 {
     this._executables = executables;
     this._textfiles = textfiles;
     this._category = category;
     this._subcategory = subcategory;
 }
예제 #10
0
 public GameType(String uniqueId, String title, String imagePath, String description, ObservableCollection <string> executables, ObservableCollection <string> textfiles, CategoryType category, SubcategoryType subcategory)
     : base(uniqueId, title, imagePath, description)
 {
     this._executables = executables;
     this._textfiles   = textfiles;
     this._category    = category;
     this._subcategory = subcategory;
 }