Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }