protected override void InternalProcessRecord()
        {
            GlobalLocatorServiceDomain globalLocatorServiceDomain     = new GlobalLocatorServiceDomain();
            List <KeyValuePair <DomainProperty, PropertyValue> > list = new List <KeyValuePair <DomainProperty, PropertyValue> >();
            GlsDirectorySession glsDirectorySession = new GlsDirectorySession();
            BitVector32         bitVector           = default(BitVector32);

            bitVector[1] = false;
            globalLocatorServiceDomain.ExternalDirectoryOrganizationId = (Guid)base.Fields["ExternalDirectoryOrganizationId"];
            globalLocatorServiceDomain.DomainName  = (SmtpDomain)base.Fields["DomainName"];
            globalLocatorServiceDomain.DomainInUse = (base.Fields.IsModified("DomainInUse") && (bool)base.Fields["DomainInUse"]);
            list.Add(new KeyValuePair <DomainProperty, PropertyValue>(DomainProperty.ExoDomainInUse, new PropertyValue(globalLocatorServiceDomain.DomainInUse)));
            if (base.Fields.IsModified("DomainFlags"))
            {
                globalLocatorServiceDomain.DomainFlags = new GlsDomainFlags?((GlsDomainFlags)base.Fields["DomainFlags"]);
                if ((globalLocatorServiceDomain.DomainFlags & GlsDomainFlags.Nego2Enabled) == GlsDomainFlags.Nego2Enabled)
                {
                    bitVector[1] = true;
                }
                if ((globalLocatorServiceDomain.DomainFlags & GlsDomainFlags.OAuth2ClientProfileEnabled) == GlsDomainFlags.OAuth2ClientProfileEnabled)
                {
                    bitVector[2] = true;
                }
            }
            list.Add(new KeyValuePair <DomainProperty, PropertyValue>(DomainProperty.ExoFlags, new PropertyValue(bitVector.Data)));
            glsDirectorySession.AddAcceptedDomain(globalLocatorServiceDomain.ExternalDirectoryOrganizationId, globalLocatorServiceDomain.DomainName.Domain, (DomainKeyType)base.Fields["DomainType"], list.ToArray());
            base.WriteObject(globalLocatorServiceDomain);
        }
        protected override void InternalProcessRecord()
        {
            GlobalLocatorServiceDomain globalLocatorServiceDomain = new GlobalLocatorServiceDomain();
            GlsDirectorySession        glsDirectorySession        = new GlsDirectorySession();
            SmtpDomain smtpDomain = (SmtpDomain)base.Fields["DomainName"];

            if (!glsDirectorySession.TryGetTenantDomainFromDomainFqdn(smtpDomain.Domain, out globalLocatorServiceDomain, true))
            {
                base.WriteGlsDomainNotFoundError(smtpDomain.Domain);
            }
            glsDirectorySession.RemoveAcceptedDomain(globalLocatorServiceDomain.ExternalDirectoryOrganizationId, smtpDomain.Domain, true);
        }
Beispiel #3
0
        protected override void InternalProcessRecord()
        {
            GlobalLocatorServiceDomain sendToPipeline      = new GlobalLocatorServiceDomain();
            GlsDirectorySession        glsDirectorySession = new GlsDirectorySession();
            SmtpDomain smtpDomain = (SmtpDomain)base.Fields["DomainName"];

            if (this.UseOfflineGLS)
            {
                if (!glsDirectorySession.TryGetTenantDomainFromDomainFqdn(smtpDomain.Domain, out sendToPipeline, true, GlsCacheServiceMode.CacheOnly))
                {
                    base.WriteGlsDomainNotFoundError(smtpDomain.Domain);
                }
            }
            else if (!glsDirectorySession.TryGetTenantDomainFromDomainFqdn(smtpDomain.Domain, out sendToPipeline, true))
            {
                base.WriteGlsDomainNotFoundError(smtpDomain.Domain);
            }
            base.WriteObject(sendToPipeline);
        }
Beispiel #4
0
        protected override void InternalProcessRecord()
        {
            GlobalLocatorServiceDomain globalLocatorServiceDomain = new GlobalLocatorServiceDomain();
            GlsDirectorySession        glsDirectorySession        = new GlsDirectorySession();
            SmtpDomain smtpDomain = (SmtpDomain)base.Fields["DomainName"];

            if (!glsDirectorySession.TryGetTenantDomainFromDomainFqdn(smtpDomain.Domain, out globalLocatorServiceDomain, true))
            {
                base.WriteGlsDomainNotFoundError(smtpDomain.Domain);
            }
            List <KeyValuePair <DomainProperty, PropertyValue> > list = new List <KeyValuePair <DomainProperty, PropertyValue> >();

            if (base.Fields.IsModified("DomainInUse"))
            {
                list.Add(new KeyValuePair <DomainProperty, PropertyValue>(DomainProperty.ExoDomainInUse, new PropertyValue((bool)base.Fields["DomainInUse"])));
            }
            if (base.Fields.IsModified("DomainFlags"))
            {
                list.Add(new KeyValuePair <DomainProperty, PropertyValue>(DomainProperty.ExoFlags, new PropertyValue((int)base.Fields["DomainFlags"])));
            }
            glsDirectorySession.UpdateAcceptedDomain(globalLocatorServiceDomain.ExternalDirectoryOrganizationId, globalLocatorServiceDomain.DomainName.Domain, list.ToArray());
        }