Open this page in the API Guide

ICustomAttributeService.GetCustomAttribute Method (String)

Gets a custom attribute by name.

Namespace:  Dundas.BI.AccountServices
Assembly:  Dundas.BI.Core (in Dundas.BI.Core.dll) Version: 2.0.0.0 (25.1.0.1000)
Syntax
CustomAttributeInfo? GetCustomAttribute(
	string name
)

Parameters

name
Type: System.String
The name of the custom attribute.

Return Value

Type: CustomAttributeInfo
The custom attribute definition corresponding to the requested attribute, or null if the attribute was not found.
Exceptions
ExceptionCondition
ArgumentExceptionname is null or empty.
InvalidSessionExceptionThe caller context is not associated with a valid session.
Examples

This example demonstrates how to create the Dundas BI engine, start the Dundas BI engine, log on, create a custom attribute called Daves, assign that custom attribute to the Dave accounts, and then shutdown the Dundas BI engine.

C#
using Dundas.BI;
using Dundas.BI.AccountServices;
using Dundas.BI.Services;
using System.Collections.ObjectModel;
   ...

// Create the engine.
EngineManager.CreateEngine(
    // Path to the application's data folder. Type: System.String
    @"C:\Program Files\Dundas Data Visualization Inc\Dundas BI\Instances\Instance1\www\BIWebsite\App_Data"
);

try
{
    // Start the Dundas BI Engine.
    EngineManager.StartEngine();

    // Create a caller context not associated with any session.
    using(Engine.Current.GetService<ICallerContextService>().CreateAndSetCurrentContext(null))
    {

        // LogOn.
        LogOnResult logOnResult = Engine.Current.GetService<ILogOnService>().LogOn(
            // The account name. Type: System.String
            "admin",
            // The password. Type: System.String
            "1234",
            // Delete other sessions for the logon to succeed. Type: System.Boolean
            true,
            // Culture to associate with the session, or null. Type: System.Globalization.CultureInfo
            null
        );

        // Set the current session ID.
        Engine.Current.GetService<ICallerContextService>().CurrentContext.SetCurrentSessionId(
            logOnResult.Session.Id
        );


        // Get the custom attribute service.
        ICustomAttributeService customAttributeService =
            Engine.Current.GetService<ICustomAttributeService>();

        // Save the new custom attribute.
        customAttributeService.SaveCustomAttribute(
                new CustomAttributeInfo()
                {
                    Description = "These are the Daves I know",
                    Name = "Daves",
                    InheritanceBehavior = CustomAttributeInheritanceBehavior.Override,
                    IsMultiValue = false
                }
            );

        // Now get the custom attribute.  It's ID will be needed.
        var davesCustomAttribute = customAttributeService.GetCustomAttribute("Daves");

        // Get the account service.
        IAccountService accountService =
            Engine.Current.GetService<IAccountService>();    

        // Create a filter rule to get all the users that have a 
        // display name that starts with <c>dav</c>.
        AccountQueryFilterRule accountQueryFilterRule = 
            new AccountQueryFilterRule(
                AccountQueryField.DisplayName, 
                Dundas.BI.QueryFilterOperator.StartsWith, 
                "dav"
                );

        // Get all the dave accounts
        IList<Account> daveAccounts =
            accountService.AccountQuery(
            0,
            0, 
            null, 
            new List<AccountQueryFilterRule>() { 
                accountQueryFilterRule
                }
            );

        // Loop through the dave accounts.
        foreach(Account daveAccount in daveAccounts)
        {
            // Add the custom attribute to the Dave Account.
            daveAccount.CustomAttributes.Add(
                davesCustomAttribute.Id, new CustomAttributeValue(davesCustomAttribute.Id) { SingleValue = "Is a Dave I know" }
            );

            // Save the account with the custom attribute.
            accountService.SaveAccount(daveAccount);
        }
    }
}
finally
{
    EngineManager.ShutdownEngine();
}
See Also