Search Results for

    Show / Hide Table of Contents

    Interface ITreeService

    Service to get associate's placement information in the trees.

    Namespace: DirectScale.Disco.Extension.Services
    Assembly: DirectScale.Disco.Extension.Abstractions.dll
    Syntax
    public interface ITreeService
    Remarks

    For clarity in documentation the word "Associate" is used instead of "Node" in most places because that is what it will be for most users. Simplified code examples aren't syntactically correct. See NodeId for more information.

    Methods

    DeleteNode(NodeId, TreeType)

    Removes the specified Associate's id placement from the specified tree.

    Declaration
    Task DeleteNode(NodeId id, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    The associate to remove.

    TreeType tree

    The tree to be removed from.

    Returns
    Type Description
    System.Threading.Tasks.Task

    DeleteNodeAll(NodeId)

    Removes the specified Associate's placement from ALL trees.

    Declaration
    Task DeleteNodeAll(NodeId id)
    Parameters
    Type Name Description
    NodeId id

    The associate to remove from all trees.

    Returns
    Type Description
    System.Threading.Tasks.Task

    GetBottomOfLeg(NodeId, LegName, TreeType)

    Declaration
    Task<NodeDetail> GetBottomOfLeg(NodeId id, LegName leg, TreeType tree)
    Parameters
    Type Name Description
    NodeId id
    LegName leg
    TreeType tree
    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail>

    GetDownlineIds(NodeId, TreeType, Int32)

    Gets a unordered list of the specifed Id's downline.

    Declaration
    Task<NodeDetail[]> GetDownlineIds(NodeId id, TreeType tree, int levels)
    Parameters
    Type Name Description
    NodeId id
    TreeType tree
    System.Int32 levels
    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail[]>

    GetFirstTreeNodeId(Int32, TreeType)

    Gets the NodeId of this associateId for the first time they appear in tree.

    Declaration
    Task<NodeId> GetFirstTreeNodeId(int associateId, TreeType tree)
    Parameters
    Type Name Description
    System.Int32 associateId

    Associate to find in tree.

    TreeType tree

    The tree to look in.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeId>

    The first NodeId found.

    See Also
    GetNodeDetail(NodeId, TreeType)

    GetLastTreeNodeId(Int32, TreeType)

    Gets the NodeId of this associateId for the last time they appear in tree.

    Declaration
    Task<NodeId> GetLastTreeNodeId(int associateId, TreeType tree)
    Parameters
    Type Name Description
    System.Int32 associateId

    Associate to find in tree.

    TreeType tree

    The tree to look in.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeId>

    The associate's NodeId with the largest TreeIndex.

    Remarks

    In most cases this will be the same result as GetFirstTreeNodeId(Int32, TreeType). Most comp plans only allow an associate to be placed in each tree once. See GetTreeIndexes(Int32, TreeType) if associate is allowed in the tree multipe times and you want to get all of those placements.

    See Also
    GetFirstTreeNodeId(Int32, TreeType)
    GetTreeIndexes(Int32, TreeType)

    GetLegCount(NodeId, TreeType, LegName)

    Gets the number of items in a specifed associateid's leg's downline tree in tree.

    Declaration
    Task<int> GetLegCount(NodeId id, TreeType tree, LegName leg)
    Parameters
    Type Name Description
    NodeId id

    Associate with downline.

    TreeType tree

    Tree to use.

    LegName leg

    Associate's leg to size.

    Returns
    Type Description
    System.Threading.Tasks.Task<System.Int32>

    The size of the associate's leg.

    GetLevel(NodeId, NodeId, TreeType)

    Find out how many levels away id is below inDownlineOfId in tree.

    Declaration
    Task<int> GetLevel(NodeId id, NodeId inDownlineOfId, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    Dowline associate.

    NodeId inDownlineOfId

    Upline associate.

    TreeType tree

    Tree to use.

    Returns
    Type Description
    System.Threading.Tasks.Task<System.Int32>

    Distance between upline and downline associate, or -1 if not in downline.

    GetMatrixDepth()

    Gets the maximum allowed depth in a matrix tree. This is set through the advanced setting "MatrixDepthSetting".

    Declaration
    Task<int> GetMatrixDepth()
    Returns
    Type Description
    System.Threading.Tasks.Task<System.Int32>

    Max depth of a matrix tree.

    GetNodeDetail(NodeId, TreeType)

    Gets the specified associate id's UplineID and Leg in tree.

    Declaration
    Task<NodeDetail> GetNodeDetail(NodeId id, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    Associate to find upline for.

    TreeType tree

    Tree to find upline in.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail>

    Upline and leg details for associate.

    GetTree(NodeId, TreeType, Int32)

    Gets levels of downline Tree for a specified associateid in tree.

    Declaration
    Task<Node> GetTree(NodeId id, TreeType tree, int levels)
    Parameters
    Type Name Description
    NodeId id

    The associate to get tree for.

    TreeType tree

    The tree to read.

    System.Int32 levels

    The number of levels deep to find associate below specified associate.

    Returns
    Type Description
    System.Threading.Tasks.Task<Node>

    Downline tree that can be traversed by going through the Legs.

    GetTreeIndexes(Int32, TreeType)

    Gets all of the times this associateId is found within tree. To use these values create a new NodeId for this associate with the TreeIndex set to one of the values in the return array to specify an exact position in the tree.

    Declaration
    Task<int[]> GetTreeIndexes(int associateId, TreeType tree)
    Parameters
    Type Name Description
    System.Int32 associateId

    Associate to find in tree.

    TreeType tree

    The tree to look in.

    Returns
    Type Description
    System.Threading.Tasks.Task<System.Int32[]>

    All of the assocaite's placements in this tree.

    Remarks

    Since most comp plans only allow an associate to be placed in each tree once, the return value will usually be an array with a single element of value "0".

    The reason this doesn't just return a single int representing the number of times an associate is in a tree, is because an associate could be added into the tree multiple times, but then deleted, creating gaps. Example return value: {0, 1, 3, 5}

    See Also
    GetFirstTreeNodeId(Int32, TreeType)
    GetTreeIndexes(Int32, TreeType)

    GetUnplacedNodes(NodeId, TreeType, TreeType)

    Finds all the associates downline of id's in sourcTreeType, that have not been placed in tree. Example: GetUnplacedNodes(2, TreeType.Enrollment, TreeType.Binary); will find the associates that this associate enrolled, but still needs to place in the binary tree.

    Declaration
    Task<NodeId[]> GetUnplacedNodes(NodeId id, TreeType sourcTreeType, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    Associate with unplaced people in downline.

    TreeType sourcTreeType

    The tree used to find their downline.

    TreeType tree

    The tree used to determine if they've been placed.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeId[]>

    Associates that are under id in one tree (sourcTreeType), but not present the other.

    GetUplineIds(NodeId, TreeType)

    Gets the chain of associate NodeDetails from id to the top of the tree tree, in order.

    Declaration
    Task<NodeDetail[]> GetUplineIds(NodeId id, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    The associate to find the uplines of.

    TreeType tree

    The tree to walk up.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail[]>

    An array of associates, including and starting with the passed in associate id, and ending with the top associate in tree.

    Remarks

    Counterintuitively, the first element returned in the array will be equivalent to calling GetNodeDetail(NodeId, TreeType) for the passed in associate id, NOT the associate's direct upline. This is because the relationship between the associate and their enroller comes from UplineLeg. Skipping straight to the first upline would loose this information connecting the reqeusted associate to their direct upine.

    If only the direct upline's associate id is needed, then using GetNodeDetail(NodeId, TreeType) will be more efficient and UplineId will provide the upline's id.

    Example: These should all return the same value if called for the same associate and tree: GetNodeDetail(...).UplineId, GetUplineIds(...)[0].UplineId, GetUplineIds(...)[1].NodeId

    GetUplineIdsBulk(NodeId[], TreeType)

    Declaration
    Task<NodeDetail[]> GetUplineIdsBulk(NodeId[] ids, TreeType tree)
    Parameters
    Type Name Description
    NodeId[] ids
    TreeType tree
    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail[]>

    GetUplineIdsPartial(NodeId, NodeId, TreeType)

    Gets the chain of associate NodeDetails from beginId to endId in tree, in order.

    Declaration
    Task<NodeDetail[]> GetUplineIdsPartial(NodeId beginId, NodeId endId, TreeType tree)
    Parameters
    Type Name Description
    NodeId beginId

    The node to begin getting detail from.

    NodeId endId

    The node to stop at when getting detail.

    TreeType tree

    The tree to get detail from.

    Returns
    Type Description
    System.Threading.Tasks.Task<NodeDetail[]>

    Array of upline details starting with beginId and ending with endId inclusive.

    InDownline(NodeId, NodeId, TreeType)

    Returns 'True' if the id is in the downline of inDownlineOfId in tree.

    Declaration
    Task<bool> InDownline(NodeId id, NodeId inDownlineOfId, TreeType tree)
    Parameters
    Type Name Description
    NodeId id

    Associate being searched for.

    NodeId inDownlineOfId

    Associate's downline to search.

    TreeType tree

    Tree to look in.

    Returns
    Type Description
    System.Threading.Tasks.Task<System.Boolean>

    Indicates if inDownlineOfId is downline of id.

    Place(Placement[])

    Executes one or more placements or moves.

    Declaration
    Task Place(Placement[] changes)
    Parameters
    Type Name Description
    Placement[] changes

    The array of changes to be made.

    Returns
    Type Description
    System.Threading.Tasks.Task
    Remarks

    It is important that you call ValidatePlacements(Placement[]) first!

    See Also
    ValidatePlacements(Placement[])

    ValidatePlacements(Placement[])

    Validate changes before the placements are actually executed.

    Declaration
    Task ValidatePlacements(Placement[] changes)
    Parameters
    Type Name Description
    Placement[] changes

    The array of changes to validate.

    Returns
    Type Description
    System.Threading.Tasks.Task
    See Also
    Place(Placement[])
    In This Article
    Back to top Copyright © 2022 DirectScale
    Generated by DocFX