Table of Contents

DimensionTreeItem

Represents an item / member of a DimensionTree.

Properties

Name Data type Description
Id String The id of the dimension member, for example the department id.
ParentId String The parent id of the dimension member.
Level Byte The level of the dimension member in the dimension.
Properties TProps A property object that contains dimension properties when defined.
ChildCount Int32 The number of children the dimension member has.

Methods

Name Return type Description
TraverseDown() IEnumerable<DimensionTreeItem> Returns descendants of the dimension member in a breadth first order.
TraverseUp() IEnumerable<DimensionTreeItem> Returns the ancestors of the dimension member.
public void Foo(Profitbase.Flow.Extensions.Invision.Dimensions.DimensionTree<MyWorkspace.DimProps_GUID> departmentDimension)
{
    var regionEast = departmentDimension.FindMember("Region-East");
    // If Region-East does not exist, FindMember() returns null
    if(regionEast != null)
    {        
        foreach(var descendants in regionEast.TraverseDown())
        {
            // Visit all descendants of region east
        }

        foreach(var ancestor in regionEast.TraverseUp())
        {
            // Visit all ancestors of region east
        }
    }

    var department2 = departmentDimension.FindMemberOrDefault("E-002");
    // If E-002 does not exist, FindMemberOrDefault() returns an empty default member
    if(department2.Id != null)
    {
        // E-002 was found
    }
    else
    {
        // E-002 was NOT found
    }

    if(departmentDimension.TryFindMember("E-003", out var department3))
    {
        // E-003 was found. Check the Manager Email property of the dimension member and perform an action.
        if(!string.IsNullOrWhitespace(department3.Properties.ManagerEmail))       
        {
            // Print manager email to the debug window
            this.Context.Diagnostics.Log.Debug($"Manager email for department {department3.Id} is {department3.Properties.ManagerEmail}.");
        }        
    }
}