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); }
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)); } } }
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))); }