/// <summary>
        /// This method initializes activity UI controls to their default values.
        /// </summary>
        /// <param name="activity">An instance of the current workflow activity. This provides a way to extract the values of the properties to display in the UI.</param>
        public override void LoadActivitySettings(Activity activity)
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                // Cast the supplied activity as a GenerateUniqueValue activity
                GenerateUniqueValue wfa = activity as GenerateUniqueValue;
                if (wfa == null)
                {
                    return;
                }

                // Set form control values based on the activity's dependency properties
                this.activityDisplayName.Value        = wfa.ActivityDisplayName;
                this.activityExecutionCondition.Value = wfa.ActivityExecutionCondition;
                this.publicationTarget.Value          = wfa.PublicationTarget;
                this.conflictFilter.Value             = wfa.ConflictFilter;
                this.queryLdap.Value      = wfa.QueryLdap;
                this.uniquenessSeed.Value = wfa.UniquenessSeed;
                this.LoadValueExpressions(wfa.ValueExpressions);
                this.ldapQueries.LoadActivitySettings(wfa.LdapQueriesTable);
            }
            catch (Exception e)
            {
                Logger.Instance.ReportError(e);
                throw;
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }
        public override Activity GenerateActivityOnWorkflow(SequentialWorkflow workflow)
        {
            Logger.Instance.WriteMethodEntry();

            try
            {
                // Create a new instance of the GenerateUniqueValue activity and assign
                // dependenty property values based on inputs to standard activity controls
                GenerateUniqueValue wfa = new GenerateUniqueValue
                {
                    ActivityDisplayName        = this.activityDisplayName.Value,
                    ActivityExecutionCondition = this.activityExecutionCondition.Value,
                    PublicationTarget          = this.publicationTarget.Value,
                    ConflictFilter             = this.conflictFilter.Value,
                    QueryLdap        = this.queryLdap.Value,
                    UniquenessSeed   = this.uniquenessSeed.Value,
                    ValueExpressions = this.FetchValueExpressions()
                };

                DefinitionsConverter ldapQueriesConverter = new DefinitionsConverter(this.ldapQueries.DefinitionListings);
                wfa.LdapQueriesTable = ldapQueriesConverter.DefinitionsTable;

                return(wfa);
            }
            catch (Exception e)
            {
                Logger.Instance.ReportError(e);
                throw;
            }
            finally
            {
                Logger.Instance.WriteMethodExit();
            }
        }