public void LocalCrmTests_DeactivateActivate() { var service = GetService(); var entityType = typeof(Entity); var entitiesMissingStatusCodeAttribute = new List <string>(); foreach (var entity in from t in typeof(SystemUser).Assembly.GetTypes() where entityType.IsAssignableFrom(t) && new LateBoundActivePropertyInfo(EntityHelper.GetEntityLogicalName(t)).ActiveAttribute != ActiveAttributeType.None select(Entity) Activator.CreateInstance(t)) { entity.Id = service.Create(entity); AssertCrm.IsActive(service, entity, "Entity " + entity.GetType().Name + " wasn't created active!"); try { service.SetState(entity.LogicalName, entity.Id, false); } catch (Exception ex) { if (ex.ToString().Contains("does not contain an attribute with name statuscode")) { entitiesMissingStatusCodeAttribute.Add(entity.LogicalName); continue; } throw; } AssertCrm.IsNotActive(service, entity, "Entity " + entity.GetType().Name + " wasn't deactivated!"); service.SetState(entity.LogicalName, entity.Id, true); AssertCrm.IsActive(service, entity, "Entity " + entity.GetType().Name + " wasn't activated!"); } if (entitiesMissingStatusCodeAttribute.Any()) { Assert.Fail("The following Entities do not contain an attribute with name statuscode " + String.Join(", ", entitiesMissingStatusCodeAttribute) + ". Check DLaB.Xrm.ActiveAttributeType for proper configuration."); } }
public void LocalCrmTests_DeactivateActivate() { var service = GetService(); var entityType = typeof(Entity); var entitiesMissingStatusCodeAttribute = new List <string>(); var entitiesMissingStateCodeAttribute = new List <string>(); foreach (var entity in from t in typeof(SystemUser).Assembly.GetTypes() where entityType.IsAssignableFrom(t) && new LateBoundActivePropertyInfo(EntityHelper.GetEntityLogicalName(t)).ActiveAttribute != ActiveAttributeType.None select(Entity) Activator.CreateInstance(t)) { if (entity.LogicalName == RecommendationCache.EntityLogicalName) { entity.Id = service.Create(entity); } if (entity.LogicalName == Incident.EntityLogicalName) { // Satisfy ErrorCodes.unManagedidsincidentparentaccountandparentcontactnotpresent var customer = new Account(); customer.Id = service.Create(customer); entity[Incident.Fields.CustomerId] = customer.ToEntityReference(); } entity.Id = service.Create(entity); AssertCrm.IsActive(service, entity, "Entity " + entity.GetType().Name + " wasn't created active!"); try { if (entity.LogicalName == Incident.EntityLogicalName) { // Requires the Special Resolve Incident Request Message continue; } service.SetState(entity.LogicalName, entity.Id, false); } catch (Exception ex) { if (ex.ToString().Contains("does not contain an attribute with name statuscode")) { entitiesMissingStatusCodeAttribute.Add(entity.LogicalName); continue; } if (ex.ToString().Contains("does not contain an attribute with name statecode")) { entitiesMissingStateCodeAttribute.Add(entity.LogicalName); continue; } throw; } AssertCrm.IsNotActive(service, entity, "Entity " + entity.GetType().Name + " wasn't deactivated!"); service.SetState(entity.LogicalName, entity.Id, true); AssertCrm.IsActive(service, entity, "Entity " + entity.GetType().Name + " wasn't activated!"); } if (entitiesMissingStatusCodeAttribute.Any()) { Assert.Fail("The following Entities do not contain an attribute with name statuscode " + entitiesMissingStatusCodeAttribute.ToCsv() + ". Check DLaB.Xrm.ActiveAttributeType for proper configuration."); } if (entitiesMissingStateCodeAttribute.Any()) { Assert.Fail("The following Entities do not contain an attribute with name statecode " + entitiesMissingStateCodeAttribute.ToCsv() + ". Check DLaB.Xrm.ActiveAttributeType for proper configuration."); } }