internal void OverwriteAttributeTypeWithRelationshipInfo(DataRow row, EntityMetadataReader reader) { var attributeName = row[ColumnForAttributeName] as string; var metadata = reader.GetRelationShipByReferencingAttribute(attributeName); if (metadata == null) return; row[ColumnForAttributeType] = string.Format("Lookup[RefEntity:{0}][RefColumnName:{1}]", metadata.ReferencedEntity, metadata.ReferencedAttribute); }
private void QueryEntityMetadata() { WorkAsync("Querying Entity List", e => // Work To Do Asynchronously { var request = new RetrieveAllEntitiesRequest { EntityFilters = EntityFilters.Entity, RetrieveAsIfPublished = true }; e.Result = Service.Execute(request); }, e => { var reader = new EntityMetadataReader(e.Result as OrganizationResponse); entityDropdown.DataSource = reader.ParseEntityList(); }); }
private void QueryRelationshipMetadata() { WorkAsync("Querying Relationships for Selected Entity: " + entityDropdown.SelectedValue, e => // Work To Do Asynchronously { var request = new RetrieveAllEntitiesRequest { EntityFilters = EntityFilters.Relationships, RetrieveAsIfPublished = true }; e.Result = Service.Execute(request); }, e => { var reader = new EntityMetadataReader(e.Result as OrganizationResponse); relationShipDropdown.DataSource = reader.ParseRelationships(entityDropdown.SelectedValue as string); var formUpdater = new GridUpdater(entityAttributeView) { ColumnForAttributeName = "Logical Name", ColumnForAttributeType = "Attribute Type" }; formUpdater.Where(row => row[formUpdater.ColumnForAttributeType] as string == "Lookup") .ForEach(x => formUpdater.OverwriteAttributeTypeWithRelationshipInfo(x, reader)); formUpdater.Refresh(); }); }
private void QueryAttributeMetadata() { WorkAsync("Querying Attributes for Selected Entity: " + entityDropdown.SelectedValue, e => // Work To Do Asynchronously { var request = new RetrieveAllEntitiesRequest { EntityFilters = EntityFilters.Attributes, RetrieveAsIfPublished = true }; var response = Service.Execute(request); var reader = new EntityMetadataReader(response); e.Result = reader.ParseAttributes(entityDropdown.SelectedValue as string); }, e => // Cleanup when work has completed SafeSetDataSource(entityAttributeView, e.Result)); }