Esempio n. 1
0
        protected virtual IEnumerable <FriendConnection> DoGetFriendConnections(FriendQuery query, ICacheParams cacheParams = null)
        {
            var rows = ForNode(query.G_Node).LoadEnumerable(Queries.FindFriends <FriendRow>(query));

            foreach (var row in rows)
            {
                var friendNode = DoGetNode(row.G_Friend, cacheParams);
                foreach (var graphNode in GraphHost.FilterByOriginQuery(new[] { friendNode }, query.OriginQuery))
                {
                    yield return(new FriendConnection(graphNode,
                                                      row.Request_Date,
                                                      FriendStatus.Approved.Equals(GSFriendStatus.ToFriendStatus(row.Status))
              ? (DateTime?)row.Status_Date
              : null,
                                                      GSFriendshipRequestDirection.ToFriendshipRequestDirection(row.Direction),
                                                      GSFriendVisibility.ToFriendVisibility(row.Visibility),
                                                      row.Lists));
                }
            }
        }
Esempio n. 2
0
        protected virtual GraphNode DoGetNode(GDID gNode, ICacheParams cacheParams = null)
        {
            var row = Cache.FetchThrough(gNode,
                                         SocialConsts.GS_NODE_TBL,
                                         cacheParams,
                                         gdid => loadNodeRow(gNode));

            if (row == null)
            {
                return(new GraphNode());
            }

            return(new GraphNode(row.Node_Type,
                                 row.GDID,
                                 row.G_OriginShard,
                                 row.G_Origin,
                                 row.Origin_Name,
                                 row.Origin_Data,
                                 row.Create_Date.Value,
                                 GSFriendVisibility.ToFriendVisibility(row.Friend_Visibility)));
        }