private bool IsOnlyGatewayServerRoleExist() { IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession; QueryFilter filter = new BitMaskOrFilter(ServerSchema.CurrentServerRole, 16439UL); Server[] array = configurationSession.Find <Server>(null, QueryScope.SubTree, filter, null, 1); return(array == null || array.Length == 0); }
private static QueryFilter CreateSecurityGroupFilter(bool securityEnabled) { QueryFilter queryFilter = new BitMaskOrFilter(ADGroupSchema.GroupType, (ulong)int.MinValue); if (!securityEnabled) { return(new NotFilter(queryFilter)); } return(queryFilter); }
private static QueryFilter CreateUniversalGroupFilter(bool isUniversal) { QueryFilter queryFilter = new BitMaskOrFilter(ADGroupSchema.GroupType, 8UL); if (!isUniversal) { return(new NotFilter(queryFilter)); } return(queryFilter); }
protected QueryFilter SinglePropertySmartFilterToNativeFilter(QueryFilter filter, PropertyDefinition nativeProperty) { MultivaluedInstanceComparisonFilter multivaluedInstanceComparisonFilter = filter as MultivaluedInstanceComparisonFilter; if (multivaluedInstanceComparisonFilter != null) { return(new MultivaluedInstanceComparisonFilter(multivaluedInstanceComparisonFilter.ComparisonOperator, nativeProperty, multivaluedInstanceComparisonFilter.PropertyValue)); } ComparisonFilter comparisonFilter = filter as ComparisonFilter; if (comparisonFilter != null) { return(new ComparisonFilter(comparisonFilter.ComparisonOperator, nativeProperty, comparisonFilter.PropertyValue)); } ExistsFilter existsFilter = filter as ExistsFilter; if (existsFilter != null) { return(new ExistsFilter(nativeProperty)); } TextFilter textFilter = filter as TextFilter; if (textFilter != null) { return(new TextFilter(nativeProperty, textFilter.Text, textFilter.MatchOptions, textFilter.MatchFlags)); } BitMaskFilter bitMaskFilter = filter as BitMaskFilter; if (bitMaskFilter != null) { return(new BitMaskFilter(nativeProperty, bitMaskFilter.Mask, bitMaskFilter.IsNonZero)); } BitMaskAndFilter bitMaskAndFilter = filter as BitMaskAndFilter; if (bitMaskAndFilter != null) { return(new BitMaskAndFilter(nativeProperty, bitMaskAndFilter.Mask)); } BitMaskOrFilter bitMaskOrFilter = filter as BitMaskOrFilter; if (bitMaskOrFilter != null) { return(new BitMaskOrFilter(nativeProperty, bitMaskOrFilter.Mask)); } throw this.CreateInvalidFilterConversionException(filter); }
private static QueryFilter RoleAssignmentFlagsFilterBuilder <T>(SinglePropertyFilter filter, RoleAssignmentFlagsFormat.Bitfields bitfield, RoleAssignmentFlagsFormat.ConvertToUlongDelegate convertor) { if (!(filter is ComparisonFilter)) { throw new ADFilterException(DirectoryStrings.ExceptionUnsupportedFilterForProperty(filter.Property.Name, filter.GetType(), typeof(ComparisonFilter))); } ComparisonFilter comparisonFilter = (ComparisonFilter)filter; if (comparisonFilter.ComparisonOperator != ComparisonOperator.Equal && ComparisonOperator.NotEqual != comparisonFilter.ComparisonOperator) { throw new ADFilterException(DirectoryStrings.ExceptionUnsupportedOperatorForProperty(comparisonFilter.Property.Name, comparisonFilter.ComparisonOperator.ToString())); } if (!(comparisonFilter.PropertyValue is T)) { throw new ArgumentException("filter.PropertyValue"); } ulong rawUInt64Bits = RoleAssignmentFlagsFormat.GetRawUInt64Bits(convertor(comparisonFilter.PropertyValue), bitfield); ulong mask = RoleAssignmentFlagsFormat.masks[(int)bitfield] << RoleAssignmentFlagsFormat.shifts[(int)bitfield] & ~rawUInt64Bits; QueryFilter queryFilter = new BitMaskAndFilter(ExchangeRoleAssignmentSchema.ExchangeRoleAssignmentFlags, rawUInt64Bits); QueryFilter queryFilter2 = new BitMaskOrFilter(ExchangeRoleAssignmentSchema.ExchangeRoleAssignmentFlags, mask); if (comparisonFilter.PropertyValue is bool && !(bool)comparisonFilter.PropertyValue) { if (ComparisonOperator.NotEqual != comparisonFilter.ComparisonOperator) { return(new NotFilter(queryFilter)); } return(queryFilter); } else { if (ComparisonOperator.NotEqual != comparisonFilter.ComparisonOperator) { return(new AndFilter(new QueryFilter[] { queryFilter, new NotFilter(queryFilter2) })); } return(new OrFilter(new QueryFilter[] { new NotFilter(queryFilter), queryFilter2 })); } }
protected QueryFilter SinglePropertyNativeFilterToSmartFilter(QueryFilter filter, PropertyDefinition nativeProperty) { SinglePropertyFilter singlePropertyFilter = filter as SinglePropertyFilter; if (singlePropertyFilter != null && singlePropertyFilter.Property.Equals(nativeProperty)) { MultivaluedInstanceComparisonFilter multivaluedInstanceComparisonFilter = filter as MultivaluedInstanceComparisonFilter; if (multivaluedInstanceComparisonFilter != null) { return(new MultivaluedInstanceComparisonFilter(multivaluedInstanceComparisonFilter.ComparisonOperator, this, multivaluedInstanceComparisonFilter.PropertyValue)); } ComparisonFilter comparisonFilter = filter as ComparisonFilter; if (comparisonFilter != null) { return(new ComparisonFilter(comparisonFilter.ComparisonOperator, this, comparisonFilter.PropertyValue)); } ExistsFilter existsFilter = filter as ExistsFilter; if (existsFilter != null) { return(new ExistsFilter(this)); } TextFilter textFilter = filter as TextFilter; if (textFilter != null) { return(new TextFilter(this, textFilter.Text, textFilter.MatchOptions, textFilter.MatchFlags)); } BitMaskFilter bitMaskFilter = filter as BitMaskFilter; if (bitMaskFilter != null) { return(new BitMaskFilter(this, bitMaskFilter.Mask, bitMaskFilter.IsNonZero)); } BitMaskAndFilter bitMaskAndFilter = filter as BitMaskAndFilter; if (bitMaskAndFilter != null) { return(new BitMaskAndFilter(this, bitMaskAndFilter.Mask)); } BitMaskOrFilter bitMaskOrFilter = filter as BitMaskOrFilter; if (bitMaskOrFilter != null) { return(new BitMaskOrFilter(this, bitMaskOrFilter.Mask)); } } return(null); }