public List <CrmPicklist> ObtenerOptionSetGlobal(string optionsetName) { List <CrmPicklist> lista = null; try { RetrieveOptionSetRequest retrieveOptionSetRequest = new RetrieveOptionSetRequest { Name = optionsetName }; // Execute the request. RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)_servicio.Execute(retrieveOptionSetRequest); // Access the retrieved OptionSetMetadata. OptionSetMetadata retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata; // Get the current options list for the retrieved attribute. OptionMetadata[] optionList = retrievedOptionSetMetadata.Options.ToArray(); if (optionList != null) { lista = new List <CrmPicklist>(); foreach (OptionMetadata optionMetadata in optionList) { //optionsetSelectedText = optionMetadata.Label.UserLocalizedLabel.Label.ToString(); CrmPicklist item = new CrmPicklist(); item.Id = optionMetadata.Value; item.Nombre = optionMetadata.Label.UserLocalizedLabel.Label; lista.Add(item); } } } catch (Exception) { } return(lista); }
public List <CrmPicklist> ObtenerOptionSetEntidad(string NombreEntidad, string NombreAtributo) { List <CrmPicklist> lista = null; RetrieveEntityRequest retrieveDetails = new RetrieveEntityRequest { EntityFilters = EntityFilters.All, LogicalName = NombreEntidad }; RetrieveEntityResponse retrieveEntityResponseObj = (RetrieveEntityResponse)_servicio.Execute(retrieveDetails); Microsoft.Xrm.Sdk.Metadata.EntityMetadata metadata = retrieveEntityResponseObj.EntityMetadata; Microsoft.Xrm.Sdk.Metadata.PicklistAttributeMetadata picklistMetadata = metadata.Attributes.FirstOrDefault( attribute => String.Equals(attribute.LogicalName, NombreAtributo, StringComparison.OrdinalIgnoreCase) ) as Microsoft.Xrm.Sdk.Metadata.PicklistAttributeMetadata; Microsoft.Xrm.Sdk.Metadata.OptionSetMetadata options = picklistMetadata.OptionSet; IList <OptionMetadata> OptionsList = (from o in options.Options select o).ToList(); if (OptionsList != null) { lista = new List <CrmPicklist>(); foreach (OptionMetadata option in OptionsList) { CrmPicklist item = new CrmPicklist(); item.Id = option.Value; item.Nombre = option.Label.UserLocalizedLabel.Label; lista.Add(item); } } return(lista); }