Example #1
0
        public Boolean ConnectionRequest(User_ConnectionRequest connection)
        {
            List <User> users = new List <User>();

            users = _users.Find <User>(x => x.uID == connection.uID || x.uID == connection.connectionID).ToList();
            foreach (var user in users)
            {
                var filter = Builders <User> .Filter.Eq(x => x.uID, user.uID);

                if (user.uID == connection.uID)
                {
                    //user with connection.uID is sending the request
                    User_ConnectionPending pending = new User_ConnectionPending();
                    pending.Stance = SentOrReceived.Sent;
                    pending.uID    = connection.connectionID;

                    var update = Builders <User> .Update.AddToSet(x => x.PendingConnection, pending);

                    _users.UpdateOne(filter, update);
                }
                else
                {
                    User_ConnectionPending pending = new User_ConnectionPending();
                    pending.Stance = SentOrReceived.Received;
                    pending.uID    = connection.uID;

                    var update = Builders <User> .Update.AddToSet(x => x.PendingConnection, pending);

                    _users.UpdateOne(filter, update);
                }
            }
            return(true);
        }
Example #2
0
        public Boolean ConnectionResponse(User_ConnectionResponse pending)
        {
            List <User> users = new List <User>();

            users = _users.Find <User>(x => x.uID == pending.uID || x.uID == pending.connectorID).ToList();
            User_ConnectionResponse _pending = new User_ConnectionResponse();

            _pending = pending;
            if (_pending.Status)
            {
                foreach (var user in users)
                {
                    var filter = Builders <User> .Filter.Eq(x => x.uID, user.uID);

                    if (user.uID == pending.uID)
                    {
                        //one that received
                        var update_0 = Builders <User> .Update.AddToSet(x => x.Connections, pending.connectorID);

                        _users.UpdateOne(filter, update_0);
                        User_ConnectionPending request = new User_ConnectionPending();
                        request.uID    = pending.connectorID;
                        request.Stance = SentOrReceived.Received;

                        var update_1 = Builders <User> .Update.Pull(x => x.PendingConnection, request);

                        _users.UpdateOne(filter, update_1);
                    }
                    else
                    {
                        var update = Builders <User> .Update.AddToSet(x => x.Connections, pending.uID);

                        _users.UpdateOne(filter, update);
                        User_ConnectionPending request = new User_ConnectionPending();
                        request.uID    = pending.uID;
                        request.Stance = SentOrReceived.Sent;
                        var update1 = Builders <User> .Update.Pull(x => x.PendingConnection, request);

                        _users.UpdateOne(filter, update1);
                    }
                }
            }
            return(true);
        }