Quantcast
Viewing all articles
Browse latest Browse all 6944

[URGENT] PutExportEntries is not being called in ECMA2

I am developing this ECMA2 based MA, but for some reason, the OpenExportConnection() and the CloseExportConnection() methods are being called, but the PutExportEntries() method is not being called. There is no exceptions thrown anywhere, so I cannot think of any reason why the PutExportEntries() method would not be called. Any insights /suggestions?

namespace FimSync_Ezma
{
    public class EzmaExtension :
    IMAExtensible2CallExport,
    IMAExtensible2GetSchema,
    IMAExtensible2GetCapabilities
    {
        [System.ComponentModel.DefaultValue(1000)]
        public int ExportMaxPageSize { get; set; }

        [System.ComponentModel.DefaultValue(100)]
        public int ExportDefaultPageSize { get; set; }

        //
        // Constructor
        //
        public EzmaExtension() { }

        public MACapabilities Capabilities
        {
            get
            {
                MACapabilities myCapabilities = new MACapabilities();

                myCapabilities.SupportExport = true;
                myCapabilities.FullExport = true;
                myCapabilities.ExportType = MAExportType.ObjectReplace;
                myCapabilities.NoReferenceValuesInFirstExport = true;
                myCapabilities.ExportPasswordInFirstPass = false;

                myCapabilities.SupportImport =false;
                myCapabilities.DeltaImport = false;

                myCapabilities.ConcurrentOperation = false;

                myCapabilities.ObjectRename = false;
                myCapabilities.DeleteAddAsReplace = false;

                myCapabilities.DistinguishedNameStyle = MADistinguishedNameStyle.None;
                myCapabilities.Normalizations = MANormalizations.None;

                return myCapabilities;
            }
        }

        public IList<ConfigParameterDefinition> GetConfigParameters(KeyedCollection<string, ConfigParameter> configParameters,
                                                            ConfigParameterPage page)
        {
            List<ConfigParameterDefinition> configParametersDefinitions = new List<ConfigParameterDefinition>();

            switch (page)
            {
                case ConfigParameterPage.Connectivity:
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("URL", ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateEncryptedStringParameter("Username", ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Domain", ""));
                    configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Password", ""));
                    break;

                case ConfigParameterPage.Global:
                    break;

                case ConfigParameterPage.Partition:
                    break;

                case ConfigParameterPage.RunStep:
                    break;
            }

            return configParametersDefinitions;
        }

        public ParameterValidationResult ValidateConfigParameters(KeyedCollection<string, ConfigParameter> configParameters,
                                                                   ConfigParameterPage page)
        {
            ParameterValidationResult myResults = new ParameterValidationResult();
            return myResults;
        }

        public Schema GetSchema(KeyedCollection<string, ConfigParameter> configParameters)
        {
            Microsoft.MetadirectoryServices.SchemaType personType = Microsoft.MetadirectoryServices.SchemaType.Create("Person", false);

            personType.Attributes.Add(SchemaAttribute.CreateSingleValuedAttribute("accountName", AttributeType.String, Microsoft.MetadirectoryServices.AttributeOperation.ExportOnly));
            personType.Attributes.Add(SchemaAttribute.CreateSingleValuedAttribute("displayName", AttributeType.String, Microsoft.MetadirectoryServices.AttributeOperation.ExportOnly));

            Schema schema = Schema.Create();
            schema.Types.Add(personType);

            return schema;
        }


        public void OpenExportConnection(KeyedCollection<string, ConfigParameter> configParameters,
                    Schema types,
                    OpenExportConnectionRunStep exportRunStep)
        {
            // Do nothing
        }

        public PutExportEntriesResults PutExportEntries(IList<CSEntryChange> csentries)
        {
            foreach (CSEntryChange csentryChange in csentries)
            {
                string accountName = string.Empty;
                string displayName = string.Empty;

                foreach (string attrib in csentryChange.ChangedAttributeNames)
                {
                    switch (attrib)
                    {
                        case "accountName":
                            accountName = csentryChange.AttributeChanges["accountName"].ValueChanges[0].Value.ToString();
                            break;
                        case "displayName":
                            displayName = csentryChange.AttributeChanges["displayName"].ValueChanges[0].Value.ToString();
                            break;
                        default:
                            //ignore
                            break;
                    }
                }

                // TODO: Make API call
            }

            PutExportEntriesResults exportEntriesResults = new PutExportEntriesResults();
            return exportEntriesResults;
        }

        public void CloseExportConnection(CloseExportConnectionRunStep exportRunStep)
        {
            // Do nothing
        }
    };
}



Viewing all articles
Browse latest Browse all 6944

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>