/// <summary>
        /// Constructs a new replica.
        /// </summary>
        /// <param name="dc">Domain controller</param>
        /// <param name="kind">Replica kind.</param>
        /// <param name="dn">Distinguished name.</param>
        /// <param name="partial">Is it partial replica</param>
        public Replica(ModelDomainController dc, ReplicaKind kind, string dn, bool partial)
        {
            this.dc      = dc;
            this.kind    = kind;
            this.dn      = dn;
            this.partial = partial;
            this.root    = new ModelObject();
            root.dc      = dc;
            AttributeContext objectClassContext =
                new AttributeContext(
                    null,
                    StandardNames.objectClass,
                    Syntax.StringObjectIdentifier,
                    false,
                    null);
            AttributeContext cnContext =
                new AttributeContext(
                    null,
                    StandardNames.cn,
                    Syntax.StringUnicode);

            switch (kind)
            {
            case ReplicaKind.Domain:
                root[StandardNames.objectClass] =
                    objectClassContext.Parse(StandardNames.top + ";" + StandardNames.domainDNS);
                break;

            case ReplicaKind.Application:
                root[StandardNames.objectClass] =
                    objectClassContext.Parse(StandardNames.top + ";" + StandardNames.domainDNS);
                break;

            case ReplicaKind.Configuration:
                root[StandardNames.cn]          = cnContext.Parse("Configuration");
                root[StandardNames.objectClass] =
                    objectClassContext.Parse(StandardNames.top + ";" + StandardNames.configuration);
                break;

            case ReplicaKind.Schema:
                root[StandardNames.cn]          = cnContext.Parse("Schema");
                root[StandardNames.objectClass] =
                    objectClassContext.Parse(StandardNames.top + ";" + StandardNames.dMD);
                break;
            }
        }
Beispiel #2
0
 internal ReplicaStatus(ReplicaKind kind)
 {
     this.Kind = kind;
 }