Example #1
0
        protected virtual GraphChangeStatus DoSaveNode(GraphNode node)
        {
            GraphChangeStatus result;

            var row = loadNodeRow(node.GDID);

            if (row == null)
            {
                row = new NodeRow(false)
                {
                    GDID          = node.GDID,
                    In_Use        = true,
                    Node_Type     = node.NodeType,
                    G_OriginShard = node.G_OriginShard,
                    G_Origin      = node.G_Origin,
                    Create_Date   = node.TimestampUTC
                };
                result = GraphChangeStatus.Added;
            }
            else
            {
                result = GraphChangeStatus.Updated;
            }

            row.Origin_Name       = node.OriginName;
            row.Friend_Visibility = GSFriendVisibility.ToDomainString(node.DefaultFriendVisibility);

            ForNode(node.GDID).Upsert(row);

            return(result);
        }
Example #2
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));
                }
            }
        }
Example #3
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)));
        }