Definining the schema
using System.Threading.Tasks;
using Microsoft.MetadirectoryServices;
namespace Lithnet.Ecma2Framework.Example
{
internal class SchemaProvider : ISchemaProvider
{
public Task<Schema> GetMmsSchemaAsync()
{
Schema mmsSchema = new Schema();
mmsSchema.Types.Add(this.GetSchemaTypeUser());
return Task.FromResult(mmsSchema);
}
private SchemaType GetSchemaTypeUser()
{
SchemaType mmsType = SchemaType.Create("user", true);
SchemaAttribute mmsAttribute = SchemaAttribute.CreateAnchorAttribute("id", AttributeType.String, AttributeOperation.ImportOnly);
mmsType.Attributes.Add(mmsAttribute);
mmsAttribute = SchemaAttribute.CreateSingleValuedAttribute("name", AttributeType.String, AttributeOperation.ImportExport);
mmsType.Attributes.Add(mmsAttribute);
mmsAttribute = SchemaAttribute.CreateSingleValuedAttribute("email", AttributeType.String, AttributeOperation.ImportExport);
mmsType.Attributes.Add(mmsAttribute);
mmsAttribute = SchemaAttribute.CreateSingleValuedAttribute("phone", AttributeType.String, AttributeOperation.ImportExport);
mmsType.Attributes.Add(mmsAttribute);
return mmsType;
}
}
}
## Configuration parameters
You can get the configuration parameters set for the management agent, by injecting `IConfigParameters` into your classes constructor.
```cs
using System.Threading.Tasks;
using Microsoft.MetadirectoryServices;
namespace Lithnet.Ecma2Framework.Example
{
internal class SchemaProvider : ISchemaProvider
{
private readonly IConfigurationParameters configParameters;
public SchemaProvider(IConfigurationParameters configParameters)
{
this.configParameters = configParameters;
}
// Class implementation
}
}Last updated