Пример #1
0
        public static Grouper CreateFromConfig(GrouperConfiguration config)
        {
            Grouper grouper = new Grouper(config.ChangeRatioLowerLimit);

            if (config.AzureAdRole != null && config.AzureAdRole.Length > 0)
            {
                AzureAd az = new AzureAd(config);
                if (config.AzureAdHasRole(GrouperConfiguration.Role.GroupStore))
                {
                    grouper.AddGroupStore(az);
                }
                if (config.ExchangeHasRole(GrouperConfiguration.Role.MemberSource))
                {
                    grouper.AddMemberSource(az);
                }
                if (config.AzureAdHasRole(GrouperConfiguration.Role.GroupOwnerSource))
                {
                    grouper.AddGroupOwnerSource(az);
                }
            }
            if (config.ExchangeRole != null && config.ExchangeRole.Length > 0)
            {
                Exo exo = new Exo(config);
                if (config.ExchangeHasRole(GrouperConfiguration.Role.GroupStore))
                {
                    grouper.AddGroupStore(exo);
                }
                if (config.ExchangeHasRole(GrouperConfiguration.Role.MemberSource))
                {
                    grouper.AddMemberSource(exo);
                }
            }
            if (config.OnPremAdHasRole(GrouperConfiguration.Role.GroupStore))
            {
                OnPremAd onPremAd = new OnPremAd(config);
                if (config.OnPremAdHasRole(GrouperConfiguration.Role.GroupStore))
                {
                    grouper.AddGroupStore(onPremAd);
                }
                if (config.OnPremAdHasRole(GrouperConfiguration.Role.MemberSource))
                {
                    grouper.AddMemberSource(onPremAd);
                }
            }
            if (!string.IsNullOrEmpty(config.MemberDatabaseConnectionString))
            {
                grouper.AddMemberSource(new MemberDb(config));
            }
            if (!string.IsNullOrEmpty(config.LogDatabaseConnectionString))
            {
                grouper.AddLogger(new LogDb(config));
            }
            if (!string.IsNullOrEmpty(config.OpenEDatabaseConnectionString))
            {
                grouper.AddGroupStore(new OpenE(config));
            }
            return(grouper);
        }