コード例 #1
0
        private void RemovePendingFriendRequests(user user)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var frdReqQuery =
                        from frdReq in db.friendRequests
                        where (frdReq.from_user == user.ID || frdReq.to_user == user.ID)
                        select frdReq;

                    foreach (var frdReq in frdReqQuery)
                    {
                        db.friendRequests.DeleteOnSubmit(frdReq);
                    }

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                            "Exception in Database.RemovePendingFriendRequests!\n Exception: {0} \n Callstack: {1}",
                                            e.Message,
                                            e.StackTrace));
                    }
                }
            }
        }
コード例 #2
0
        public void AddNewUser(string newEmail, string newAlias)
        {
            if (string.IsNullOrEmpty(newEmail))
            {
                return;
            }

            if (string.IsNullOrEmpty(newAlias))
            {
                return;
            }

            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var newUser = new user
                    {
                        email          = newEmail,
                        alias          = newAlias,
                        creation_time  = DateTime.UtcNow,
                        last_seen_time = DateTime.UtcNow
                    };

                    db.users.InsertOnSubmit(newUser);

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                            "Exception in Database.AddNewUser!\n Exception: {0} \n Callstack: {1}",
                                            e.Message,
                                            e.StackTrace));
                    }
                }
            }
        }
コード例 #3
0
        private void RemoveFriendRequest(string fromUser, string toUser)
        {
            var _fromUser = GetUserFromEmailAddress(fromUser);
            var _toUser   = GetUserFromEmailAddress(toUser);

            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    if ((_fromUser != null) &&
                        (_toUser != null))
                    {
                        var requestQuery =
                            from request in db.friendRequests
                            where (request.from_user == _fromUser.ID) && (request.to_user == _toUser.ID)
                            select request;

                        foreach (var request in requestQuery)
                        {
                            db.friendRequests.DeleteOnSubmit(request);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                                "Exception in Database.RemoveFriendRequest!\n Exception: {0} \n Callstack: {1}",
                                                e.Message,
                                                e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #4
0
        public void RemoveFriendship(string user1, string user2)
        {
            var _user1 = GetUserFromEmailAddress(user1);
            var _user2 = GetUserFromEmailAddress(user2);

            if ((_user1 != null) &&
                (_user2 != null))
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    using (var db = new OzwegoDataClassesDataContext(connection))
                    {
                        IQueryable <friendship> friendshipQuery =
                            from frd in db.friendships
                            where (frd.user1 == _user1.ID && frd.user2 == _user2.ID) || (frd.user1 == _user2.ID && frd.user2 == _user1.ID)
                            select frd;

                        foreach (var frd in friendshipQuery)
                        {
                            db.friendships.DeleteOnSubmit(frd);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                                "Exception in Database.RemoveFriendship!\n Exception: {0} \n Callstack: {1}",
                                                e.Message,
                                                e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #5
0
        //
        // This method is private because friendships can only be created when a row in the
        // friendRequest table has been modified.
        //
        private void CreateFriendship(string user1, string user2)
        {
            var _user1 = GetUserFromEmailAddress(user1);
            var _user2 = GetUserFromEmailAddress(user2);

            if ((_user1 != null) &&
                (_user2 != null))
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    using (var db = new OzwegoDataClassesDataContext(connection))
                    {
                        var friendship = new friendship
                        {
                            user1         = _user1.ID,
                            user2         = _user2.ID,
                            creation_time = DateTime.UtcNow
                        };


                        db.friendships.InsertOnSubmit(friendship);

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                                "Exception in Database.CreateFriendship!\n Exception: {0} \n Callstack: {1}",
                                                e.Message,
                                                e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// Test Hook Method for Unit Tests.  Not to be used IRL.
        /// </summary>
        public void RemoveUser(string emailAddr)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var curUser = GetUserFromEmailAddress(emailAddr);

                    if (curUser != null)
                    {
                        IQueryable <user> userQuery =
                            from u in db.users
                            where (u.email == emailAddr)
                            select u;

                        foreach (var user in userQuery)
                        {
                            RemovePendingFriendRequests(user);
                            RemoveAllFriends(user);
                            db.users.DeleteOnSubmit(user);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                                "Exception in Database.RemoveUser!\n Exception: {0} \n Callstack: {1}",
                                                e.Message,
                                                e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #7
0
        public void SendFriendRequest(string fromUserString, string toUserString)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var fromUser = GetUserFromEmailAddress(fromUserString);
                    var toUser   = GetUserFromEmailAddress(toUserString);

                    if ((fromUser != null) &&
                        (toUser != null))
                    {
                        var request = new friendRequest
                        {
                            from_user     = fromUser.ID,
                            to_user       = toUser.ID,
                            creation_time = DateTime.UtcNow
                        };

                        db.friendRequests.InsertOnSubmit(request);

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                                "Exception in Database.SendFriendRequest!\n Exception: {0} \n Callstack: {1}",
                                                e.Message,
                                                e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #8
0
        public void AddNewGameData(GameData gameData)
        {
            if (null == gameData)
            {
                Trace.WriteLine(string.Format(
                                    "Invalid Game Data in Database.AddNewGameData!\n GameData is null."));

                return;
            }

            var winnerUser = GetUserFromEmailAddress(gameData.Winner);

            if (null == winnerUser)
            {
                Trace.WriteLine(string.Format(
                                    "Invalid Game Data in Database.AddNewGameData!\n Winner {0} not recognized.",
                                    gameData.Winner));

                return;
            }

            foreach (var kvp in gameData.PlayerDictionary)
            {
                var player = GetUserFromEmailAddress(kvp.Key);

                if (null == player)
                {
                    Trace.WriteLine(string.Format(
                                        "Invalid Game Data in Database.AddNewGameData!\n Player {0} not recognized.",
                                        kvp.Key));

                    return;
                }
            }

            if (gameData.GameDuration < 0)
            {
                Trace.WriteLine(string.Format(
                                    "Invalid Game Data in Database.AddNewGameData!\n GameDuration of value {0} is invalid.",
                                    gameData.GameDuration));

                return;
            }


            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var newData = new game
                    {
                        winner        = winnerUser.ID,
                        gameStartTime = gameData.GameStartTime,
                        gameDuration  = gameData.GameDuration
                    };

                    // ToDo: newData.gameDataFile = ??


                    db.games.InsertOnSubmit(newData);

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                            "Exception in Database.AddNewGameData!\n Exception: {0} \n Callstack: {1}",
                                            e.Message,
                                            e.StackTrace));
                    }

                    var gameInstance = GetGameID(GetUserFromEmailAddress(gameData.Winner).ID, gameData.GameStartTime);

                    if (gameInstance == null)
                    {
                        return;
                    }

                    foreach (var kvp in gameData.PlayerDictionary)
                    {
                        var userGame = new user_game();
                        userGame.avgTimeBetweenDumps = kvp.Value.AvgTimeBetweenDumps;
                        userGame.avgTimeBetweenPeels = kvp.Value.AvgTimeBetweenPeels;
                        userGame.isWinner            = kvp.Value.IsWinner;
                        userGame.numberOfDumps       = kvp.Value.NumberOfDumps;
                        userGame.numberOfPeels       = kvp.Value.NumberOfPeels;
                        userGame.performedFirstPeel  = kvp.Value.PerformedFirstPeel;
                        userGame.userID = GetUserFromEmailAddress(kvp.Key).ID;
                        userGame.gameID = gameInstance.gameID;

                        db.user_games.InsertOnSubmit(userGame);
                    }

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                            "Exception in Database.AddNewGameData!\n Exception: {0} \n Callstack: {1}",
                                            e.Message,
                                            e.StackTrace));
                    }
                }
            }
        }
コード例 #9
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        private void RemovePendingFriendRequests(user user)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var frdReqQuery =
                        from frdReq in db.friendRequests
                        where (frdReq.from_user == user.ID || frdReq.to_user == user.ID)
                        select frdReq;

                    foreach (var frdReq in frdReqQuery)
                    {
                        db.friendRequests.DeleteOnSubmit(frdReq);
                    }

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                "Exception in Database.RemovePendingFriendRequests!\n Exception: {0} \n Callstack: {1}",
                                e.Message,
                                e.StackTrace));
                    }
                }
            }
        }
コード例 #10
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        //
        // This method is private because friendships can only be created when a row in the
        // friendRequest table has been modified.
        //
        private void CreateFriendship(string user1, string user2)
        {
            var _user1 = GetUserFromEmailAddress(user1);
            var _user2 = GetUserFromEmailAddress(user2);

            if ((_user1 != null) &&
                (_user2 != null))
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    using (var db = new OzwegoDataClassesDataContext(connection))
                    {
                        var friendship = new friendship
                        {
                            user1 = _user1.ID,
                            user2 = _user2.ID,
                            creation_time = DateTime.UtcNow
                        };

                        db.friendships.InsertOnSubmit(friendship);

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                    "Exception in Database.CreateFriendship!\n Exception: {0} \n Callstack: {1}",
                                    e.Message,
                                    e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #11
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        private void RemoveFriendRequest(string fromUser, string toUser)
        {
            var _fromUser = GetUserFromEmailAddress(fromUser);
            var _toUser = GetUserFromEmailAddress(toUser);

            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    if ((_fromUser != null) &&
                        (_toUser != null))
                    {
                        var requestQuery =
                            from request in db.friendRequests
                            where (request.from_user == _fromUser.ID) && (request.to_user == _toUser.ID)
                            select request;

                        foreach (var request in requestQuery)
                        {
                            db.friendRequests.DeleteOnSubmit(request);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                    "Exception in Database.RemoveFriendRequest!\n Exception: {0} \n Callstack: {1}",
                                    e.Message,
                                    e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #12
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        public void SendFriendRequest(string fromUserString, string toUserString)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var fromUser = GetUserFromEmailAddress(fromUserString);
                    var toUser = GetUserFromEmailAddress(toUserString);

                    if ((fromUser != null) &&
                       (toUser != null))
                    {
                        var request = new friendRequest
                            {
                                from_user = fromUser.ID,
                                to_user = toUser.ID,
                                creation_time = DateTime.UtcNow
                            };

                        db.friendRequests.InsertOnSubmit(request);

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                    "Exception in Database.SendFriendRequest!\n Exception: {0} \n Callstack: {1}",
                                    e.Message,
                                    e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #13
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        public void AddNewGameData(GameData gameData)
        {
            if (null == gameData)
            {
                Trace.WriteLine(string.Format(
                    "Invalid Game Data in Database.AddNewGameData!\n GameData is null."));

                return;
            }

            var winnerUser = GetUserFromEmailAddress(gameData.Winner);

            if (null == winnerUser)
            {
                Trace.WriteLine(string.Format(
                    "Invalid Game Data in Database.AddNewGameData!\n Winner {0} not recognized.",
                    gameData.Winner));

                return;
            }

            foreach (var kvp in gameData.PlayerDictionary)
            {
                var player = GetUserFromEmailAddress(kvp.Key);

                if (null == player)
                {
                    Trace.WriteLine(string.Format(
                        "Invalid Game Data in Database.AddNewGameData!\n Player {0} not recognized.",
                        kvp.Key));

                    return;
                }
            }

            if (gameData.GameDuration < 0)
            {
                Trace.WriteLine(string.Format(
                    "Invalid Game Data in Database.AddNewGameData!\n GameDuration of value {0} is invalid.",
                    gameData.GameDuration));

                return;
            }

            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {

                    var newData = new game
                        {
                            winner = winnerUser.ID,
                            gameStartTime = gameData.GameStartTime,
                            gameDuration = gameData.GameDuration
                        };

                    // ToDo: newData.gameDataFile = ??

                    db.games.InsertOnSubmit(newData);

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                "Exception in Database.AddNewGameData!\n Exception: {0} \n Callstack: {1}",
                                e.Message,
                                e.StackTrace));
                    }

                    var gameInstance = GetGameID(GetUserFromEmailAddress(gameData.Winner).ID, gameData.GameStartTime);

                    if (gameInstance == null)
                    {
                        return;
                    }

                    foreach (var kvp in gameData.PlayerDictionary)
                    {
                        var userGame = new user_game();
                        userGame.avgTimeBetweenDumps = kvp.Value.AvgTimeBetweenDumps;
                        userGame.avgTimeBetweenPeels = kvp.Value.AvgTimeBetweenPeels;
                        userGame.isWinner = kvp.Value.IsWinner;
                        userGame.numberOfDumps = kvp.Value.NumberOfDumps;
                        userGame.numberOfPeels = kvp.Value.NumberOfPeels;
                        userGame.performedFirstPeel = kvp.Value.PerformedFirstPeel;
                        userGame.userID = GetUserFromEmailAddress(kvp.Key).ID;
                        userGame.gameID = gameInstance.gameID;

                        db.user_games.InsertOnSubmit(userGame);
                    }

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                "Exception in Database.AddNewGameData!\n Exception: {0} \n Callstack: {1}",
                                e.Message,
                                e.StackTrace));
                    }
                }
            }
        }
コード例 #14
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        /// <summary>
        /// Test Hook Method for Unit Tests.  Not to be used IRL.
        /// </summary>
        public void RemoveUser(string emailAddr)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var curUser = GetUserFromEmailAddress(emailAddr);

                    if (curUser != null)
                    {
                        IQueryable<user> userQuery =
                            from u in db.users
                            where (u.email == emailAddr)
                            select u;

                        foreach (var user in userQuery)
                        {
                            RemovePendingFriendRequests(user);
                            RemoveAllFriends(user);
                            db.users.DeleteOnSubmit(user);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                    "Exception in Database.RemoveUser!\n Exception: {0} \n Callstack: {1}",
                                    e.Message,
                                    e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #15
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        public void RemoveFriendship(string user1, string user2)
        {
            var _user1 = GetUserFromEmailAddress(user1);
            var _user2 = GetUserFromEmailAddress(user2);

            if ((_user1 != null) &&
                (_user2 != null))
            {
                using (var connection = new SqlConnection(ConnectionString))
                {
                    using (var db = new OzwegoDataClassesDataContext(connection))
                    {
                        IQueryable<friendship> friendshipQuery =
                            from frd in db.friendships
                            where (frd.user1 == _user1.ID && frd.user2 == _user2.ID) || (frd.user1 == _user2.ID && frd.user2 == _user1.ID)
                            select frd;

                        foreach (var frd in friendshipQuery)
                        {
                            db.friendships.DeleteOnSubmit(frd);
                        }

                        try
                        {
                            db.SubmitChanges();
                        }
                        catch (Exception e)
                        {
                            Trace.WriteLine(string.Format(
                                    "Exception in Database.RemoveFriendship!\n Exception: {0} \n Callstack: {1}",
                                    e.Message,
                                    e.StackTrace));
                        }
                    }
                }
            }
        }
コード例 #16
0
ファイル: Database.cs プロジェクト: jonathanyeung/ozwego
        public void AddNewUser(string newEmail, string newAlias)
        {
            if (string.IsNullOrEmpty(newEmail))
            {
                return;
            }

            if (string.IsNullOrEmpty(newAlias))
            {
                return;
            }

            using (var connection = new SqlConnection(ConnectionString))
            {
                using (var db = new OzwegoDataClassesDataContext(connection))
                {
                    var newUser = new user
                        {
                            email = newEmail,
                            alias = newAlias,
                            creation_time = DateTime.UtcNow,
                            last_seen_time = DateTime.UtcNow
                        };

                    db.users.InsertOnSubmit(newUser);

                    try
                    {
                        db.SubmitChanges();
                    }
                    catch (Exception e)
                    {
                        Trace.WriteLine(string.Format(
                                "Exception in Database.AddNewUser!\n Exception: {0} \n Callstack: {1}",
                                e.Message,
                                e.StackTrace));
                    }
                }
            }
        }