Calling Below Method as
string labelValue = GetOptionSetValueLabel(CrmService, accEntity.LogicalName, "homeroof" , 100001);
// Method to retrieve OptionSet label value
Private string GetOptionSetValueLabel(IOrganizationService CrmWebService, string prmEntityName, string prmAttributeName, int prmOptionSetValue)
{
string ReturnLabel = string.Empty;
OptionMetadataCollection OptionsSetLabels = null;
OptionsSetLabels = RetrieveOptionSetMetaDataCollection(ref CrmWebService, prmEntityName, prmAttributeName);
foreach (OptionMetadata OptionMetdaData in OptionsSetLabels)
{
if (OptionMetdaData.Value == prmOptionSetValue)
{
ReturnLabel = OptionMetdaData.Label.UserLocalizedLabel.Label;
break;
}
}
return ReturnLabel;
}
// Method to Retrieve OptionSet Options Metada Data Collection.
Private OptionMetadataCollection RetrieveOptionSetMetaDataCollection( IOrganizationService CrmWebService, string prmEntityName, string prmAttributeName)
{
OptionMetadataCollection ReturnOptionsCollection = null;
RetrieveEntityRequest RetrieveEntityRequest = new RetrieveEntityRequest();
RetrieveEntityResponse RetrieveEntityResponse = new RetrieveEntityResponse();
RetrieveEntityRequest.LogicalName = prmEntityName;
RetrieveEntityRequest.EntityFilters = Microsoft.Xrm.Sdk.Metadata.EntityFilters.Attributes;
RetrieveEntityResponse = (RetrieveEntityResponse)CrmWebService.Execute(RetrieveEntityRequest);
foreach (AttributeMetadata AttributeMetadata in RetrieveEntityResponse.EntityMetadata.Attributes)
{
if (AttributeMetadata.AttributeType == AttributeTypeCode.Picklist &&
AttributeMetadata.LogicalName == prmAttributeName)
{
ReturnOptionsCollection = ((PicklistAttributeMetadata)AttributeMetadata).OptionSet.Options;
break;
}
}
return ReturnOptionsCollection;
}