public async Task <List <DbUser> > GetUsersByTribeAsync(DeltaConnection conn, int tribeId) { //Get all player profiles var profiles = await GetPlayerProfilesByTribeAsync(conn, tribeId); //Now, get all DbUsers List <DbUser> users = new List <DbUser>(); foreach (var p in profiles) { var u = await conn.GetUserBySteamIdAsync(p.steam_id); if (u != null) { users.Add(u); } } return(users); }
/// <summary> /// Gets a user by their Steam ID. If the user doesn't exist, one is created /// </summary> /// <returns></returns> public static async Task <DbUser> GetUserBySteamID(DeltaConnection conn, DbSteamCache profile) { //Get user. If a user account isn't created yet, make one. DbUser user = await conn.GetUserBySteamIdAsync(profile.steam_id); if (user == null) { //Create the user user = new DbUser { user_settings = new DbUserSettings(), profile_image_url = profile.icon_url, steam_profile_url = profile.profile_url, screen_name = profile.name, steam_id = profile.steam_id, _id = MongoDB.Bson.ObjectId.GenerateNewId() }; //Insert in the database await conn.system_users.InsertOneAsync(user); } return(user); }