コード例 #1
0
ファイル: Repository.cs プロジェクト: creasewp/GamePool
        public async Task <User> CreateUser(string username, string email, string passwordHash)
        {
            User result = null;
            IMobileServiceTable <User> userTable = m_MobileService.GetTable <User>();
            User match = await GetUser(username);

            //if this user doesn't exist, create it
            if (match == null)
            {
                User newUser = new User();
                newUser.UserName     = username;
                newUser.Email        = email;
                newUser.PasswordHash = passwordHash;
                newUser.IsEligible   = false;
                await userTable.InsertAsync(newUser);

                List <User> matches = await userTable.Where(item => item.UserName == username).ToListAsync();

                result = matches.First();
            }
            else
            {
                //user shouldn't exist, return null
                return(null);
            }

            List <UserGame> userGames = await m_MobileService.GetTable <UserGame>().Where(item => item.UserId == result.Id).ToListAsync();

            if (userGames.Count == 0)
            {
                //new user, must create UserGames
                int confidence = 1;
                foreach (Game game in await GetGames())
                {
                    UserGame newUserGame = new UserGame();
                    newUserGame.UserId       = result.Id;
                    newUserGame.Confidence   = confidence;
                    newUserGame.WinnerTeamId = string.Empty;
                    newUserGame.GameId       = game.Id;
                    await m_MobileService.GetTable <UserGame>().InsertAsync(newUserGame);

                    confidence++;
                }
            }
            return(result);
        }
コード例 #2
0
ファイル: Repository.cs プロジェクト: creasewp/GamePool
 public async Task DeleteUserGame(UserGame userGame)
 {
     IMobileServiceTable <UserGame> userGameTable = m_MobileService.GetTable <UserGame>();
     await userGameTable.DeleteAsync(userGame);
 }