summaryrefslogtreecommitdiff
path: root/DSALib/FireBase/Database.cs
diff options
context:
space:
mode:
Diffstat (limited to 'DSALib/FireBase/Database.cs')
-rw-r--r--DSALib/FireBase/Database.cs270
1 files changed, 0 insertions, 270 deletions
diff --git a/DSALib/FireBase/Database.cs b/DSALib/FireBase/Database.cs
deleted file mode 100644
index 1edd699..0000000
--- a/DSALib/FireBase/Database.cs
+++ /dev/null
@@ -1,270 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using DSALib.DSA_Game;
-using DSALib.DSA_Game.Characters;
-using DSALib.Models.Database.Dsa;
-using Firebase.Database;
-using Firebase.Database.Query;
-
-namespace DSALib.FireBase
-{
- public static class Database
- {
- public static FirebaseClient Firebase;
-
- public static Dictionary<string, DatabaseChar> Chars = new Dictionary<string, DatabaseChar>();
-
- public static Dictionary<string, MeleeWeapon> MeleeList = new Dictionary<string, MeleeWeapon>();
-
- public static Dictionary<string, RangedWeapon> RangedWeapons = new Dictionary<string, RangedWeapon>();
-
- public static Dictionary<string, DSALib.Models.Database.Dsa.Talent> Talents = new Dictionary<string, DSALib.Models.Database.Dsa.Talent>();
-
- public static Dictionary<string, GeneralSpell> Spells = new Dictionary<string, GeneralSpell>();
-
- static Database()
- {
- var auth = File.ReadAllText(Dsa.rootPath + "Token"); // your app secret
- Firebase = new FirebaseClient(
- "https://heldenonline-4d828.firebaseio.com/",
- new FirebaseOptions
- {
- AuthTokenAsyncFactory = () => Task.FromResult(auth)
- });
-
- Task.Run(Initialize);
- }
-
- private static void Initialize() {
- var waiting = new[] {
- // ToDo IntializeCollection("Chars", Chars),
- IntializeCollection("MeleeWeapons", MeleeList),
- IntializeCollection("RangedWeapons", RangedWeapons),
- IntializeCollection("Talents", Talents),
- IntializeCollection("Spells", Spells),
- };
- Task.WaitAll(waiting);
- }
-
- private static async Task IntializeCollection<T>(string path, Dictionary<string, T> list)
- {
- var temp = await Firebase
- .Child(path)
- .OrderByKey()
- .OnceAsync<T>();
-
- foreach (var firebaseObject in temp) list.Add(firebaseObject.Key, firebaseObject.Object);
- }
-
- public static async Task<int> AddChar(Character file, string group)
- {
- DatabaseChar.LoadChar(file, out var groupChar, out var data);
-
- var lastChar = await Firebase
- .Child("Chars")
- .OrderByKey()
- .LimitToLast(1)
- .OnceAsync<DatabaseChar>();
- var id = groupChar.Id = data.Id = lastChar.First().Object.Id + 1;
-
- await Firebase //TODO Reomve await Operators
- .Child("Groups")
- .Child("Char" + id)
- .PutAsync(groupChar);
-
- await Firebase
- .Child("Chars")
- .Child("Char" + id)
- .PutAsync(data);
-
- Chars["Char" + id] = data;
-
- await Firebase
- .Child("Inventories")
- .Child("Inventory" + id)
- .PutAsync(new Inventory());
-
- return id + 1;
- }
-
- public static async Task RemoveChar(int id)
- {
- await Firebase
- .Child("Groups")
- .Child("Char" + id)
- .DeleteAsync();
-
- await Firebase
- .Child("Chars")
- .Child("Char" + id)
- .DeleteAsync();
-
- Chars.Remove("Char" + id);
-
- await Firebase
- .Child("Inventories")
- .Child("Inventory" + id)
- .DeleteAsync();
- }
-
- public static DatabaseChar GetChar(int id)
- {
- /*var chr = await firebase
- .Child("Chars")
- .Child("Char" + id)
- .OnceSingleAsync<DatabaseChar>();
- return chr;*/
- return Chars["Char" + id];
- }
-
- public static async Task<Inventory> GetInventory(int id)
- {
- var inv = await Firebase
- .Child("Inventories")
- .Child("Inventory" + id)
- .OnceSingleAsync<Inventory>();
- return inv;
- }
-
- public static async Task SetInventory(int id, Inventory inv)
- {
- await Firebase
- .Child("Inventories")
- .Child("Inventory" + id)
- .PutAsync(inv);
- }
-
- public static async Task AddTalent(DSALib.Models.Database.Dsa.Talent tal)
- {
- await Firebase
- .Child("Talents")
- .Child(tal.Name)
- .PutAsync(tal);
- }
-
- public static async Task RemoveTalent(string talent)
- {
- await Firebase
- .Child("Talents")
- .Child(talent)
- .DeleteAsync();
- }
-
- public static DSALib.Models.Database.Dsa.Talent GetTalent(string talent)
- {
- /*
- return await firebase
- .Child("Talents")
- .Child(talent)
- .OnceSingleAsync<Talent>();*/
- return Talents[talent];
- }
-
- public static async Task AddSpell(GeneralSpell tal)
- {
- await Firebase
- .Child("Spells")
- .Child(tal.Name)
- .PutAsync(tal);
- }
-
- public static async Task RemoveSpell(string spell)
- {
- await Firebase
- .Child("Spells")
- .Child(spell)
- .DeleteAsync();
- }
-
- public static GeneralSpell GetSpell(string spell)
- {
- return Spells[spell];
- }
-
-
- public static async Task AddWeapon(Weapon wep)
- {
- var collection = wep.GetType() == typeof(MeleeWeapon) ? "MeleeWeapons" : "RangedWeapons";
- await Firebase
- .Child(collection)
- .Child(wep.Name)
- .PutAsync(wep);
- }
-
- public static async Task RemoveWeapon(string weapon, bool ranged = false)
- {
- var collection = ranged ? "RangedWeapons" : "MeleeWeapons";
- await Firebase
- .Child(collection)
- .Child(weapon)
- .DeleteAsync();
- }
-
- public static async Task<Weapon> GetWeapon(string weapon, bool ranged = false)
- {
- var collection = ranged ? "RangedWeapons" : "MeleeWeapons";
- return await Firebase
- .Child(collection)
- .Child(weapon)
- .OnceSingleAsync<Weapon>();
- }
-
- public static async Task<List<Tuple<string, string>>> GetGroups()
- {
- var groups = await Firebase
- .Child("Groups")
- .OrderByKey()
- .OnceAsync<DSALib.Models.Database.Groups.Group>();
- var ret = new List<Tuple<string, string>>();
-
- foreach (var firebaseObject in groups)
- ret.Add(new Tuple<string, string>(firebaseObject.Object.Name, firebaseObject.Object.Password));
-
- return ret;
- }
-
- public static async Task<DSALib.Models.Database.Groups.Group> GetGroup(int id)
- {
- var group = await Firebase
- .Child("Groups")
- .Child("Group" + id)
- .OnceSingleAsync<DSALib.Models.Database.Groups.Group>();
- return group;
- }
-
- public static async Task AddGroup(DSALib.Models.Database.Groups.Group group)
- {
- var lastChar = await Firebase
- .Child("Groups")
- .OrderByKey()
- .LimitToLast(1)
- .OnceAsync<DSALib.Models.Database.Groups.Group>();
- var id = group.Id = lastChar.First().Object.Id + 1;
-
- await Firebase
- .Child("Groups")
- .Child("Group" + id)
- .PutAsync(group);
- }
-
- public static async void SetGroup(DSALib.Models.Database.Groups.Group group)
- {
- await Firebase
- .Child("Groups")
- .Child("Group" + group.Id)
- .PutAsync(group);
- }
-
- public static async void DeleteGroup(int id)
- {
- await Firebase
- .Child("Groups")
- .Child("Group" + id)
- .DeleteAsync();
- }
- }
-} \ No newline at end of file