ICustomAttributeServiceGetCustomAttribute 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 (10.0.0.1002)
Syntax
CustomAttributeInfo GetCustomAttribute(
	string name
)

Parameters

name
Type: SystemString
The name of the custom attribute.

Return Value

Type: CustomAttributeInfo
The custom attribute definition corresponding to the requested attribute, or if the attribute was not found.
Exceptions
ExceptionCondition
ArgumentExceptionname is 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.
    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