/// <summary> /// Convert RelationshipDetails to JSON /// </summary> /// <param name="th"></param> /// <returns></returns> public static string ToJSON(this RelationshipDetailsModel th) { th.Attributes = th.Attributes.OrderBy(o => o.DisplayName).ToArray(); using (MemoryStream memoryStream = new MemoryStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(th.GetType()); serializer.WriteObject(memoryStream, th); return(Encoding.UTF8.GetString(memoryStream.ToArray())); } }
public RelationshipDetailsModel RetrieveRelationshipAdditionalDetails(string entityLogicalName, string attributeLogicalName, string intersectEntityName) { //Retorn var relationshipDetailsModel = new RelationshipDetailsModel(); //Request Additional Details RetrieveEntityRequest request = new RetrieveEntityRequest() { LogicalName = entityLogicalName.ToLower(), EntityFilters = EntityFilters.Default | EntityFilters.Attributes }; RetrieveEntityResponse response = (RetrieveEntityResponse)ServiceAdmin.Execute(request); //Display Name relationshipDetailsModel.DisplayName = response.EntityMetadata.DisplayName.GetLabel(this.LanguageCode); //One To Many if (string.IsNullOrEmpty(intersectEntityName)) { relationshipDetailsModel.Count = GetRecordsOneToMany(entityLogicalName, attributeLogicalName); } else { relationshipDetailsModel.Count = GetRecordsManyToMany(intersectEntityName, attributeLogicalName); } //Attributes if (relationshipDetailsModel.Count > 0) { relationshipDetailsModel.Attributes = GetAttributes(response); } else { relationshipDetailsModel.Attributes = new AttributeModel[0]; } return(relationshipDetailsModel); }