public override RunResult Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, Workflow.UpdateTableDelegate updateTableDelegate)
        {
            DDIHelper.CheckDataTableForSingleObject(dataTable);
            DataRow dataRow = dataTable.Rows[0];

            if (!(dataRow[base.IdentityVariable] is ADObjectId))
            {
                throw new NotSupportedException("Currently we don't support Back-Link look up based on the UMC type Identity!");
            }
            if (this.EnableFilter)
            {
                base.Command.AddParameter("Filter", string.Format("{0} -{1} '{2}'", this.LinkProperty, this.FilterOperator, DDIHelper.ToQuotationEscapedString(((ADObjectId)dataRow[base.IdentityVariable]).DistinguishedName)));
            }
            RunResult runResult = new RunResult();
            PowerShellResults <PSObject> powerShellResults;

            base.ExecuteCmdlet(null, runResult, out powerShellResults, false);
            if (!runResult.ErrorOccur)
            {
                List <ADObjectId> list = new List <ADObjectId>();
                foreach (PSObject psobject in powerShellResults.Output)
                {
                    if (!this.EnableFilter)
                    {
                        ADObjectId adobjectId = (ADObjectId)psobject.Properties[this.LinkProperty].Value;
                        if (adobjectId != null && adobjectId.Equals(dataRow[base.IdentityVariable]))
                        {
                            list.Add(psobject.Properties["Identity"].Value as ADObjectId);
                        }
                    }
                    else
                    {
                        list.Add(psobject.Properties["Identity"].Value as ADObjectId);
                    }
                }
                dataRow[this.OutputVariable] = list;
            }
            return(runResult);
        }