Пример #1
0
        public static string AcceptFriendRequest(int id, string membershipId)
        {
            IFriendRepository friendRepo = new EFFriendRepository();
            var friend = friendRepo.Friends.FirstOrDefault(f => f.Id == id);


            // assert exists
            if (friend == null)
            {
                return("Error");
            }

            // assert this was sent to you
            else if (friend.FriendMembershipId == membershipId)
            {
                friend.IsAccepted = true;
                friendRepo.SaveFriend(friend);

                var me        = PlayerProcedures.GetPlayerFromMembership(membershipId);
                var newFriend = PlayerProcedures.GetPlayerFromMembership(friend.OwnerMembershipId);

                if (me != null && newFriend != null)
                {
                    PlayerLogProcedures.AddPlayerLog(me.Id, $"You have accepted {newFriend.GetFullName()}'s friend request.", false);
                    PlayerLogProcedures.AddPlayerLog(newFriend.Id, $"{me.GetFullName()} has accepted your friend request!", true);
                }

                return("Success");
            }
            else
            {
                return("");
            }
        }
Пример #2
0
        public static bool AddFriend(Player player, string membershipId)
        {
            IFriendRepository friendRepo = new EFFriendRepository();

            var friend = friendRepo.Friends.FirstOrDefault(f => (f.OwnerMembershipId == membershipId && f.FriendMembershipId == player.MembershipId) || (f.FriendMembershipId == membershipId && f.OwnerMembershipId == player.MembershipId));

            if (friend != null)
            {
                // We're already friends, abort!
                return(false);
            }

            // We're not friends, let's add a friendship request
            friend = new Friend
            {
                OwnerMembershipId      = membershipId,
                FriendMembershipId     = player.MembershipId,
                IsAccepted             = false,
                FriendsSince           = DateTime.UtcNow,
                FriendNicknameForOwner = "[UNASSIGNED]",
                OwnerNicknameForFriend = "[UNASSIGNED]"
            };

            friendRepo.SaveFriend(friend);
            return(true);
        }
Пример #3
0
        public static string FriendSetNicknameOfOwner(int id, string input)
        {
            IFriendRepository friendRepo = new EFFriendRepository();
            var friend = friendRepo.Friends.FirstOrDefault(f => f.Id == id);

            friend.FriendNicknameForOwner = input;
            friendRepo.SaveFriend(friend);
            return("You set the nickname of this friend to '" + input + "'.");
        }
Пример #4
0
        public static bool MemberIsMyFriend(string me, string them)
        {
            IFriendRepository friendRepo = new EFFriendRepository();
            var dbFriend  = friendRepo.Friends.FirstOrDefault(f => f.OwnerMembershipId == me && f.FriendMembershipId == them && f.IsAccepted);
            var dbFriend2 = friendRepo.Friends.FirstOrDefault(f => f.OwnerMembershipId == them && f.FriendMembershipId == me && f.IsAccepted);

            if (dbFriend != null || dbFriend2 != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #5
0
        public static IEnumerable <FriendPlayerViewModel> GetMyFriends(string membershipId)
        {
            IFriendRepository friendRepo = new EFFriendRepository();
            IPlayerRepository playerRepo = new EFPlayerRepository();

            IEnumerable <Friend> mydbfriends = friendRepo.Friends.Where(f => f.OwnerMembershipId == membershipId || f.FriendMembershipId == membershipId);

            var output = new List <FriendPlayerViewModel>();

            foreach (var friend in mydbfriends)
            {
                var friendPlayer = new FriendPlayerViewModel();

                // this was a request sent BY me.  Grab the player who it was sent to
                if (friend.OwnerMembershipId == membershipId)
                {
                    var plyr = playerRepo.Players.FirstOrDefault(p => p.MembershipId == friend.FriendMembershipId);

                    if (plyr != null)
                    {
                        friendPlayer.dbPlayer = plyr;
                        friendPlayer.dbFriend = friend;
                        friendPlayer.friendId = friend.Id;
                        output.Add(friendPlayer);
                    }
                }

                // this was a request sent TO me.  Grab the player who sent it
                else if (friend.FriendMembershipId == membershipId)
                {
                    var plyr = playerRepo.Players.FirstOrDefault(p => p.MembershipId == friend.OwnerMembershipId);

                    if (plyr != null)
                    {
                        friendPlayer.dbPlayer = plyr;
                        friendPlayer.dbFriend = friend;
                        friendPlayer.friendId = friend.Id;
                        output.Add(friendPlayer);
                    }
                }
            }

            return(output);
        }
Пример #6
0
        public static string CancelFriendRequest(int id, string membershipId)
        {
            IFriendRepository friendRepo = new EFFriendRepository();
            var friend = friendRepo.Friends.FirstOrDefault(f => f.Id == id);


            // assert exists
            if (friend == null)
            {
                return("Error");
            }

            // assert you've sent this, or else it was sent to you
            else if (friend.OwnerMembershipId == membershipId || friend.FriendMembershipId == membershipId)
            {
                friendRepo.DeleteFriend(friend.Id);

                var me = PlayerProcedures.GetPlayerFromMembership(membershipId);
                var otherMembership = (friend.OwnerMembershipId == membershipId) ? friend.FriendMembershipId : friend.OwnerMembershipId;
                var nonFriend       = PlayerProcedures.GetPlayerFromMembership(otherMembership);
                if (friend.IsAccepted)
                {
                    PlayerLogProcedures.AddPlayerLog(me.Id, $"You are no longer friends with {nonFriend?.GetFullName()}.", false);
                }
                else
                {
                    PlayerLogProcedures.AddPlayerLog(me.Id, $"You have declined {nonFriend?.GetFullName()}'s friend request.", false);
                }

                return("");
            }
            else
            {
                return("");
            }
        }
Пример #7
0
        public static Friend GetFriend(int friendId)
        {
            IFriendRepository friendRepo = new EFFriendRepository();

            return(friendRepo.Friends.FirstOrDefault(f => f.Id == friendId));
        }