protected override bool ProcessInternal(PropertyBag propertyBag) { ADObjectId id = (ADObjectId)propertyBag[ADObjectSchema.Id]; ADRawEntry properties = this.objectPropertyLookup.GetProperties(id); if (properties == null) { ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "MissingPropertyResolver:: - Skipping object {0}. Cannot read missing properties. Object was removed. Next incremantal sync will pick up deletion.", new object[] { propertyBag[ADObjectSchema.Id] }); return(false); } foreach (object obj in properties.propertyBag.Keys) { ProviderPropertyDefinition providerPropertyDefinition = (ProviderPropertyDefinition)obj; if (!propertyBag.Contains(providerPropertyDefinition)) { propertyBag.SetField(providerPropertyDefinition, properties[providerPropertyDefinition]); } } if (ProcessorHelper.IsObjectOrganizationUnit(propertyBag) && !propertyBag.Contains(SyncCompanySchema.DirSyncStatusAck) && propertyBag.Contains(ExtendedOrganizationalUnitSchema.DirSyncStatusAck) && propertyBag[ExtendedOrganizationalUnitSchema.DirSyncStatusAck] != null && ((MultiValuedProperty <string>)propertyBag[ExtendedOrganizationalUnitSchema.DirSyncStatusAck]).Count > 0) { propertyBag.SetField(SyncCompanySchema.DirSyncStatusAck, propertyBag[ExtendedOrganizationalUnitSchema.DirSyncStatusAck]); } this.LastProcessedEntry = properties; return(true); }
public override void ReportExcludedObject(PropertyBag propertyBag, DirectoryObjectErrorCode errorCode, ProcessingStage processingStage) { SyncObjectId syncObjectId = FullSyncObjectErrorReporter.GetSyncObjectId(propertyBag); if (syncObjectId != null) { this.ReportExcludedObject(syncObjectId, errorCode, processingStage); return; } base.ReportExcludedObject(propertyBag, errorCode, processingStage); DirectoryObjectError directoryObjectError = new DirectoryObjectError(); directoryObjectError.ErrorCode = errorCode; directoryObjectError.ObjectId = (string)propertyBag[SyncObjectSchema.ObjectId]; if (propertyBag.Contains(ADObjectSchema.ObjectClass)) { directoryObjectError.ObjectClass = SyncRecipient.GetRecipientType(propertyBag); } if (propertyBag.Contains(SyncObjectSchema.ContextId)) { directoryObjectError.ContextId = (string)propertyBag[SyncObjectSchema.ContextId]; } this.errors.Add(directoryObjectError); if (this.performanceCounterSession != null) { this.performanceCounterSession.IncrementUserError(); } }
internal static bool ContainsProperty(PropertyBag propertyBag, ProviderPropertyDefinition property) { if (property.IsCalculated) { foreach (ProviderPropertyDefinition key in property.SupportingProperties) { if (!propertyBag.Contains(key)) { return(false); } } return(true); } return(propertyBag.Contains(property)); }
private bool ShouldIgnoreOrganizationUnit(PropertyBag propertyBag) { ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> entering"); bool result = true; ADObjectId adobjectId = (ADObjectId)propertyBag[ADObjectSchema.Id]; ExTraceGlobals.BackSyncTracer.TraceDebug <string>((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> check tenant {0}", adobjectId.ToString()); if (propertyBag.Contains(SyncCompanySchema.DirSyncStatusAck)) { MultiValuedProperty <string> multiValuedProperty = (MultiValuedProperty <string>)propertyBag[SyncCompanySchema.DirSyncStatusAck]; ExTraceGlobals.BackSyncTracer.TraceDebug <int>((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> DirSyncStatusAck.count = {0}", multiValuedProperty.Count); if (multiValuedProperty.Count > 0) { ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> tenant SyncCompanySchema.DirSyncStatusAck is not NULL"); result = false; } } else if (this.relocationEnabled && !ProcessorHelper.IsDeletedObject(propertyBag) && OrganizationFilter.IsRelocationCompletedSignal(propertyBag)) { ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> tenant SyncCompanySchema.RelocationInProgress is changed to false"); result = false; } else { ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> no BPOS interested attributes found on tenant. Skip tenant"); result = true; } ExTraceGlobals.BackSyncTracer.TraceDebug <string>((long)SyncConfiguration.TraceId, "<OrganizationFilter.ShouldIgnoreOrganizationUnit> leaving ({0})", result.ToString()); return(result); }
private static string GetId(PropertyBag propertyBag) { if (propertyBag.Contains(ADObjectSchema.Id)) { return(((ADObjectId)propertyBag[ADObjectSchema.Id]).DistinguishedName); } if (propertyBag.Contains(ADObjectSchema.DistinguishedName)) { return((string)propertyBag[ADObjectSchema.DistinguishedName]); } if (propertyBag.Contains(SyncObjectSchema.ObjectId)) { return((string)propertyBag[SyncObjectSchema.ObjectId]); } return(string.Empty); }
// Token: 0x06001612 RID: 5650 RVA: 0x00052AB6 File Offset: 0x00050CB6 public static void AppendForceToProxyCmdlet(PropertyBag parameters) { if (parameters.Contains("Force")) { parameters.Remove("Force"); } parameters.Add("Force", true); }
private static void AssertAreEqual(PropertyBag expected, PropertyBag actual) { Assert.AreEqual(expected.Count, actual.Count); foreach (KeyValuePair <string, IList <string> > entry in expected) { Assert.IsTrue(actual.Contains(entry)); } }
internal static void FaultInjection_Identity(PropertyBag parameters) { if (parameters.Contains("Identity")) { string value = parameters["Identity"].ToString(); ExTraceGlobals.FaultInjectionTracer.TraceTest <string>(3519425853U, ref value); parameters.Remove("Identity"); parameters.Add("Identity", value); } }
internal static bool IsUserObject(PropertyBag propertyBag) { DirectoryObjectClass directoryObjectClass = DirectoryObjectClass.Account; if (propertyBag.Contains(ADObjectSchema.ObjectClass)) { directoryObjectClass = SyncRecipient.GetRecipientType(propertyBag); } return(directoryObjectClass == DirectoryObjectClass.User); }
protected override bool ProcessInternal(PropertyBag propertyBag) { if (propertyBag.Contains(SyncUserSchema.ServiceOriginatedResource)) { MultiValuedProperty <Capability> multiValuedProperty = (MultiValuedProperty <Capability>)propertyBag[SyncUserSchema.ServiceOriginatedResource]; if (!multiValuedProperty.Contains(Capability.ExcludedFromBackSync) && propertyBag.Count == 6) { propertyBag.SetField(SyncObjectSchema.FaultInServiceInstance, this.serviceInstanceId); } } return(true); }
public override void ReportExcludedObject(PropertyBag propertyBag, DirectoryObjectErrorCode errorCode, ProcessingStage processingStage) { base.ReportExcludedObject(propertyBag, errorCode, processingStage); DirectoryObjectClass directoryObjectClass = DirectoryObjectClass.Account; if (propertyBag.Contains(ADObjectSchema.ObjectClass)) { directoryObjectClass = SyncRecipient.GetRecipientType(propertyBag); } ADObjectId adObjectId = (ADObjectId)propertyBag[ADObjectSchema.Id]; string objectId = (string)propertyBag[SyncObjectSchema.ObjectId]; this.verboseLoggingDelegate(Strings.BackSyncObjectExcludedExtended(directoryObjectClass, objectId, adObjectId, errorCode, processingStage)); }
protected override ADServerSettings GetCmdletADServerSettings() { PropertyBag fields = base.CurrentTaskContext.InvocationInfo.Fields; SwitchParameter switchParameter = fields.Contains("IsDatacenter") ? ((SwitchParameter)fields["IsDatacenter"]) : new SwitchParameter(false); bool flag = fields.Contains("DomainController"); OrganizationIdParameter organizationIdParameter = (OrganizationIdParameter)fields["PrimaryOrganization"]; PartitionId partitionId = (organizationIdParameter != null) ? ADAccountPartitionLocator.GetPartitionIdByAcceptedDomainName(organizationIdParameter.RawIdentity) : null; string value = null; ADServerSettings serverSettings = ExchangePropertyContainer.GetServerSettings(base.CurrentTaskContext.SessionState); if (serverSettings != null && partitionId != null) { value = serverSettings.PreferredGlobalCatalog(partitionId.ForestFQDN); } if (switchParameter && organizationIdParameter != null && string.IsNullOrEmpty(value) && partitionId != null && !flag) { if (this.domainBasedADServerSettings == null) { this.domainBasedADServerSettings = RunspaceServerSettings.CreateGcOnlyRunspaceServerSettings(organizationIdParameter.RawIdentity.ToLowerInvariant(), partitionId.ForestFQDN, false); } return(this.domainBasedADServerSettings); } return(base.GetCmdletADServerSettings()); }
public static string ExtractIdentityParameter(PropertyBag parameters) { if (parameters == null) { throw new ArgumentNullException("parameters"); } string result = string.Empty; if (parameters.Contains("Identity")) { object obj = parameters["Identity"]; if (obj != null) { result = obj.ToString(); } } return(result); }
private static bool PasswordExistsAndSet(PropertyBag bag) { return(bag.Contains(FtpSiteGlobals.VirtualDirectory_Password_Set) && ((bool)bag[FtpSiteGlobals.VirtualDirectory_Password_Set])); }
private static bool IsPropertyPrefilled(PropertyBag propertyBag, ProviderPropertyDefinition property) { return(propertyBag.Contains(property) && propertyBag[property] != property.DefaultValue); }
private static void AssertAreEqual(PropertyBag expected, PropertyBag actual) { Assert.AreEqual(expected.Count, actual.Count); foreach (KeyValuePair<string, IList<string>> entry in expected) { Assert.IsTrue(actual.Contains(entry)); } }
private static bool PasswordExistsAndSet(PropertyBag bag) { return (bag.Contains(FtpSiteGlobals.VirtualDirectory_Password_Set) && ((bool)bag[FtpSiteGlobals.VirtualDirectory_Password_Set])); }
internal static bool HasObjectId(PropertyBag propertyBag) { return(propertyBag.Contains(SyncObjectSchema.ObjectId) && !string.IsNullOrEmpty((string)propertyBag[SyncObjectSchema.ObjectId]) && RecipientTypeFilter.IsValidGuid((string)propertyBag[SyncObjectSchema.ObjectId])); }
private static bool IsRelocationCompletedSignal(PropertyBag propertyBag) { return(propertyBag.Contains(ADOrganizationalUnitSchema.MServSyncConfigFlags) && propertyBag[SyncCompanySchema.RelocationInProgress] != null && !(bool)propertyBag[SyncCompanySchema.RelocationInProgress]); }
private static void AddPropertyToPropertyBag(ADPropertyDefinition propertyDefinition, PropertyBag propertyBag, SimpleADObject.SimpleList <SimpleADObject.SimpleADProperty> lookup) { if (propertyBag.Contains(propertyDefinition)) { return; } if (propertyDefinition.IsCalculated) { foreach (ProviderPropertyDefinition providerPropertyDefinition in propertyDefinition.SupportingProperties) { ADPropertyDefinition propertyDefinition2 = (ADPropertyDefinition)providerPropertyDefinition; SimpleADObject.AddPropertyToPropertyBag(propertyDefinition2, propertyBag, lookup); } return; } if (string.IsNullOrEmpty(propertyDefinition.LdapDisplayName)) { return; } SimpleADObject.SimpleADProperty simpleADProperty; if (!lookup.TryGetValue(propertyDefinition.LdapDisplayName, out simpleADProperty) || simpleADProperty == null) { propertyBag.SetField(propertyDefinition, null); return; } if (simpleADProperty.Value == null) { propertyBag.SetField(propertyDefinition, null); return; } object value5; if (propertyDefinition.IsMultivalued) { ArrayList arrayList = new ArrayList(); ArrayList invalidValues = new ArrayList(); if (propertyDefinition.IsBinary) { List <byte[]> list = simpleADProperty.Value as List <byte[]>; if (list == null) { return; } using (List <byte[]> .Enumerator enumerator2 = list.GetEnumerator()) { while (enumerator2.MoveNext()) { byte[] value = enumerator2.Current; ValidationError validationError; object value2 = ADValueConvertor.ConvertFromADAndValidateSingleValue(value, propertyDefinition, propertyDefinition.Type == typeof(byte[]), out validationError); arrayList.Add(value2); } goto IL_17F; } } List <string> list2 = simpleADProperty.Value as List <string>; if (list2 == null) { return; } foreach (string value3 in list2) { ValidationError validationError2; object value4 = ADValueConvertor.ConvertFromADAndValidateSingleValue(value3, propertyDefinition, propertyDefinition.Type == typeof(string), out validationError2); arrayList.Add(value4); } IL_17F: MultiValuedPropertyBase multiValuedPropertyBase = ADValueConvertor.CreateGenericMultiValuedProperty(propertyDefinition, true, arrayList, invalidValues, null); multiValuedPropertyBase.IsCompletelyRead = true; value5 = multiValuedPropertyBase; } else { ValidationError validationError3; value5 = ADValueConvertor.ConvertFromADAndValidateSingleValue(simpleADProperty.Value, propertyDefinition, propertyDefinition.Type == (propertyDefinition.IsBinary ? typeof(byte[]) : typeof(string)), out validationError3); } propertyBag.SetField(propertyDefinition, value5); }