Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Xml;
- using System.Text;
- using System.Collections.Specialized;
- using Microsoft.MetadirectoryServices;
- using System.Collections.ObjectModel;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System.Net;
- namespace FimSync_Ezma
- {
- public class EzmaExtension :
- //IMAExtensible2CallExport,
- IMAExtensible2CallImport,
- //IMAExtensible2FileImport,
- //IMAExtensible2FileExport,
- //IMAExtensible2GetHierarchy,
- IMAExtensible2GetSchema,
- IMAExtensible2GetCapabilities,
- IMAExtensible2GetParameters
- //IMAExtensible2GetPartitions
- {
- private int m_importDefaultPageSize = 1200;
- private int m_importMaxPageSize = 1500;
- public string Password;
- public string Username;
- public string path;
- //
- // Constructor
- //
- public EzmaExtension()
- {
- //
- // TODO: Add constructor logic here
- //
- }
- public MACapabilities Capabilities
- {
- get
- {
- MACapabilities myCapabilities = new MACapabilities();
- myCapabilities.ConcurrentOperation = true;
- myCapabilities.ObjectRename = false;
- myCapabilities.DeleteAddAsReplace = true;
- myCapabilities.DeltaImport = true;
- myCapabilities.DistinguishedNameStyle = MADistinguishedNameStyle.None;
- myCapabilities.ExportType = MAExportType.AttributeUpdate;
- myCapabilities.NoReferenceValuesInFirstExport = false;
- myCapabilities.Normalizations = MANormalizations.None;
- return myCapabilities;
- }
- }
- public int ImportDefaultPageSize
- {
- get
- {
- return m_importDefaultPageSize;
- }
- }
- public int ImportMaxPageSize
- {
- get
- {
- return m_importMaxPageSize;
- }
- }
- public CloseImportConnectionResults CloseImportConnection(CloseImportConnectionRunStep importRunStep)
- {
- return new CloseImportConnectionResults();
- }
- 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("path", ""));
- configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Username", ""));
- configParametersDefinitions.Add(ConfigParameterDefinition.CreateStringParameter("Password", ""));
- break;
- //case ConfigParameterPage.Global:
- // break;
- //case ConfigParameterPage.Partition:
- // break;
- //case ConfigParameterPage.RunStep:
- // break;
- }
- return configParametersDefinitions;
- }
- public GetImportEntriesResults GetImportEntries(GetImportEntriesRunStep importRunStep)
- {
- List<CSEntryChange> csentries = new List<CSEntryChange>();
- GetImportEntriesResults importReturnInfo;
- WebClient c = new WebClient();
- c.UseDefaultCredentials = true;
- c.Credentials = new NetworkCredential(this.Username, this.Password);
- var data = c.DownloadString(this.path);
- var jObject = Newtonsoft.Json.Linq.JObject.Parse(data);
- var listResult = jObject["result"];
- string name1 = "", email1 = "";
- foreach (var result in listResult)
- {
- name1 = result["name"].ToString();
- email1 = result["email"].ToString();
- CSEntryChange csentry1 = CSEntryChange.Create();
- csentry1.ObjectModificationType = ObjectModificationType.Add;
- csentry1.ObjectType = "Person";
- csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("name", name1));
- csentry1.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("email", email1));
- csentries.Add(csentry1);
- }
- importReturnInfo = new GetImportEntriesResults();
- importReturnInfo.MoreToImport = false;
- importReturnInfo.CSEntries = csentries;
- return importReturnInfo;
- }
- public Schema GetSchema(KeyedCollection<string, ConfigParameter> configParameters)
- {
- Microsoft.MetadirectoryServices.SchemaType personType = Microsoft.MetadirectoryServices.SchemaType.Create("Person", false);
- //myname = configParameters["myname"].Value;
- string myattribute = "name";
- string myattributes = "email";
- if (myattribute == "name")
- {
- personType.Attributes.Add(SchemaAttribute.CreateAnchorAttribute(myattribute, AttributeType.String));
- }
- if (myattributes == "email")
- {
- personType.Attributes.Add(SchemaAttribute.CreateAnchorAttribute(myattributes, AttributeType.String));
- }
- Schema schema = Schema.Create();
- schema.Types.Add(personType);
- return schema;
- }
- public OpenImportConnectionResults OpenImportConnection(KeyedCollection<string, ConfigParameter> configParameters, Schema types, OpenImportConnectionRunStep importRunStep)
- {
- this.path = configParameters["path"].Value;
- this.Username = configParameters["Username"].Value;
- this.Password = configParameters["Password"].Value;
- return new OpenImportConnectionResults();
- }
- public ParameterValidationResult ValidateConfigParameters(KeyedCollection<string, ConfigParameter> configParameters, ConfigParameterPage page)
- {
- ParameterValidationResult myResults = new ParameterValidationResult();
- return myResults;
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement