private IConfigurable ReadImpl <T>(ObjectId id) where T : IConfigurable, new() { if (typeof(T) == typeof(ExchangeConfigurationUnit)) { FfoTenant ffoTenant = base.ReadAndHandleException <FfoTenant>(base.AddTenantIdFilter(null)); return(FfoConfigurationSession.GetExchangeConfigurationUnit(ffoTenant)); } if (typeof(T) == typeof(ADOrganizationalUnit)) { FfoTenant ffoTenant2 = base.ReadAndHandleException <FfoTenant>(base.AddTenantIdFilter(null)); return(FfoConfigurationSession.GetADOrganizationalUnit(ffoTenant2)); } if (typeof(T) == typeof(Organization)) { FfoTenant ffoTenant3 = base.ReadAndHandleException <FfoTenant>(base.AddTenantIdFilter(null)); return(FfoConfigurationSession.GetOrganization(ffoTenant3)); } T t = base.ReadAndHandleException <T>(base.AddTenantIdFilter(new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Id, id))); ADObject adobject = t as ADObject; if (adobject != null) { FfoDirectorySession.FixDistinguishedName(adobject, base.TenantId.DistinguishedName, base.TenantId.ObjectGuid, ((ADObjectId)adobject.Identity).ObjectGuid, null); } return(t); }
protected static Organization GetOrganization(FfoTenant ffoTenant) { if (ffoTenant == null) { return(null); } Organization organization = new Organization(); FfoConfigurationSession.SetTenantIds(ffoTenant, organization); return(organization); }
protected static ADOrganizationalUnit GetADOrganizationalUnit(FfoTenant ffoTenant) { if (ffoTenant == null) { return(null); } ADOrganizationalUnit adorganizationalUnit = new ADOrganizationalUnit(); FfoConfigurationSession.SetTenantIds(ffoTenant, adorganizationalUnit); return(adorganizationalUnit); }
ExchangeConfigurationUnit ITenantConfigurationSession.GetExchangeConfigurationUnitByName(string organizationName) { ComparisonFilter filter = new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, organizationName); FfoTenant ffoTenant = (FfoTenant)base.DataProvider.Find <FfoTenant>(filter, null, false, null).FirstOrDefault <IConfigurable>(); if (ffoTenant == null) { return(null); } return(FfoConfigurationSession.GetExchangeConfigurationUnit(ffoTenant)); }
internal static ExchangeConfigurationUnit GetExchangeConfigurationUnit(FfoTenant ffoTenant) { if (ffoTenant == null) { return(null); } ExchangeConfigurationUnit exchangeConfigurationUnit = new ExchangeConfigurationUnit(); FfoConfigurationSession.SetTenantIds(ffoTenant, exchangeConfigurationUnit); exchangeConfigurationUnit.ExternalDirectoryOrganizationId = ffoTenant.TenantId.ObjectGuid.ToString(); exchangeConfigurationUnit.CompanyTags = ffoTenant.CompanyTags; exchangeConfigurationUnit.DirSyncServiceInstance = ffoTenant.ServiceInstance; return(exchangeConfigurationUnit); }
internal override ADSessionSettings FromTenantCUName(string name) { if (name == null) { throw new ArgumentNullException("name"); } GlobalConfigSession globalConfigSession = new GlobalConfigSession(); FfoTenant tenantByName = globalConfigSession.GetTenantByName(name); if (tenantByName == null) { throw new CannotResolveTenantNameException(DirectoryStrings.CannotResolveTenantName(name)); } ExchangeConfigurationUnit exchangeConfigurationUnit = FfoConfigurationSession.GetExchangeConfigurationUnit(tenantByName); return(ADSessionSettings.SessionSettingsFactory.CreateADSessionSettings(ScopeSet.GetOrgWideDefaultScopeSet(OrganizationId.ForestWideOrgId), null, exchangeConfigurationUnit.OrganizationId, null, ConfigScopes.TenantLocal, PartitionId.LocalForest)); }
private IEnumerable <T> FindImpl <T>(QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy, int pageSize) where T : IConfigurable, new() { if (base.TenantId == null) { FfoDirectorySession.LogNotSupportedInFFO(null); } else if (typeof(T) == typeof(ExchangeConfigurationUnit)) { IEnumerable <FfoTenant> ffoTenants = base.FindAndHandleException <FfoTenant>(filter, rootId, deepSearch, sortBy, pageSize); foreach (FfoTenant ffoTenant in ffoTenants) { yield return((T)((object)FfoConfigurationSession.GetExchangeConfigurationUnit(ffoTenant))); } } else if (typeof(T) == typeof(ADOrganizationalUnit)) { IEnumerable <FfoTenant> ffoTenants2 = base.FindAndHandleException <FfoTenant>(filter, rootId, deepSearch, sortBy, pageSize); foreach (FfoTenant ffoTenant2 in ffoTenants2) { yield return((T)((object)FfoConfigurationSession.GetADOrganizationalUnit(ffoTenant2))); } } else if (typeof(T) == typeof(Organization)) { IEnumerable <FfoTenant> ffoTenants3 = base.FindAndHandleException <FfoTenant>(filter, rootId, deepSearch, sortBy, pageSize); foreach (FfoTenant ffoTenant3 in ffoTenants3) { yield return((T)((object)FfoConfigurationSession.GetOrganization(ffoTenant3))); } } else if (typeof(T) == typeof(TransportRuleCollection)) { IEnumerable <TransportRuleCollection> collections = this.FindTransportRuleCollections(filter, rootId, deepSearch, sortBy, pageSize); foreach (TransportRuleCollection coll in collections) { yield return((T)((object)coll)); } } else if (typeof(T) == typeof(BindingStorage)) { IEnumerable <BindingStorage> bindings = this.FindBindingStorage(filter, rootId, deepSearch, sortBy, pageSize, true); foreach (BindingStorage storage in bindings) { yield return((T)((object)storage)); } } else if (typeof(T) == typeof(ExchangeRoleAssignment)) { IEnumerable <ExchangeRoleAssignment> roleAssignments = this.FindExchangeRoleAssignments(filter, rootId, deepSearch, sortBy, pageSize, true); foreach (ExchangeRoleAssignment roleAssignment in roleAssignments) { yield return((T)((object)roleAssignment)); } } else if (typeof(T) == typeof(ExchangeRole)) { IEnumerable <ExchangeRole> exchangeRoles = base.FindAndHandleException <ExchangeRole>(filter, rootId, deepSearch, sortBy, pageSize); foreach (ExchangeRole exchangeRole in exchangeRoles) { FfoDirectorySession.FixDistinguishedName(exchangeRole, base.TenantId.DistinguishedName, base.TenantId.ObjectGuid, ((ADObjectId)exchangeRole.Identity).ObjectGuid, ExchangeRole.RdnContainer); this.UpdateImplictScope(exchangeRole); yield return((T)((object)exchangeRole)); } } else { IEnumerable <T> configurables = null; try { configurables = base.FindAndHandleException <T>(filter, rootId, deepSearch, sortBy, pageSize); } catch (DataProviderMappingException ex) { FfoDirectorySession.LogNotSupportedInFFO(ex); } if (configurables == null || configurables.Count <T>() == 0) { configurables = base.GetDefaultArray <T>(); } configurables = this.DoPostQueryFilter <T>(filter, configurables); foreach (T configurable in configurables) { ADObject adObject = configurable as ADObject; if (adObject != null) { FfoDirectorySession.FixDistinguishedName(adObject, base.TenantId.DistinguishedName, base.TenantId.ObjectGuid, ((ADObjectId)adObject.Identity).ObjectGuid, null); } yield return(configurable); } } yield break; }