private Task LoadCache() { foreach (var guild in _discord.Guilds) { var serverDataManager = ServerDataManager.AddServer(guild.Id); var database = new MongoDBHandler(guild.Id.ToString()); var userDataList = database.GetAllDocumentsFromTable <UserDataModel>("UserData"); foreach (var userData in userDataList) { serverDataManager.SetUserData(Convert.ToUInt64(userData.UserId), userData); } var shopRoles = database.GetAllDocumentsFromTable <ShopRoleModel>("ShopRoles"); foreach (var shopRole in shopRoles) { serverDataManager.AddShopRole(shopRole.GetRoleId(), shopRole); } var serverSettings = database.GetAllDocumentsFromTable <ServerSettingsModel>("ServerSettings"); foreach (var serverSetting in serverSettings) { serverDataManager.AddServerSettings(serverSetting.Id, serverSetting); } } return(Task.CompletedTask); }
public static ServerDataManager AddServer(ulong serverId) { var serverData = new ServerDataManager(serverId); ServerDataManagers.Add(serverId, serverData); return(ServerDataManagers[serverId]); }
private async Task UpdateDataBaseWithCache() { foreach (var cache in ServerDataManager.GetAllServerData()) { var mongoDbHandler = new MongoDBHandler(cache.Key.ToString()); //todo: find a way to use replaceMany for generics to reduce foreach loops and load times foreach (var userData in cache.Value.GetUserDataModel()) { await mongoDbHandler.Upsert("UserData", Convert.ToInt64(userData.Key), userData.Value); } foreach (var shopRole in cache.Value.GetShopRoleModel()) { await mongoDbHandler.Upsert("ShopRoles", Convert.ToInt64(shopRole.Key), shopRole.Value); } foreach (var serverSettings in cache.Value.GetServerSettingsModel()) { await mongoDbHandler.Upsert("ServerSettings", serverSettings.Key, serverSettings.Value); } } }