using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
Uri OrganizationUri = new Uri(System.Configuration.ConfigurationManager.AppSettings["CRM_Organization_URI"].ToString());
Uri HomeRealmUri = null;
Dictionary<String, String> dicState = new Dictionary<String, String>();
Dictionary<String, String> dicSuffix = new Dictionary<String, String>();
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
Uri OrganizationUri = new Uri(System.Configuration.ConfigurationManager.AppSettings["CRM_Organization_URI"].ToString());
Uri HomeRealmUri = null;
Dictionary<String, String> dicState = new Dictionary<String, String>();
Dictionary<String, String> dicSuffix = new Dictionary<String, String>();
Load Pick List
private void Load_PickList(String entityName, String attID, string attName, Dictionary dic)
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
IOrganizationService service = (IOrganizationService)serviceProxy;
QueryExpression qryExp = new QueryExpression(entityName);
qryExp.ColumnSet = new ColumnSet(attName);
EntityCollection entCollection = service.RetrieveMultiple(qryExp);
dic = entCollection.Entities.ToDictionary(e => e.Attributes[attID].ToString(), e => e.Attributes[attName].ToString());
/* foreach (var c in entCollection.Entities)
{
dic.Add(c.Attributes[attID].ToString(), c.Attributes[attName].ToString());
}
}*/
}
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
IOrganizationService service = (IOrganizationService)serviceProxy;
QueryExpression qryExp = new QueryExpression(entityName);
qryExp.ColumnSet = new ColumnSet(attName);
EntityCollection entCollection = service.RetrieveMultiple(qryExp);
dic = entCollection.Entities.ToDictionary(e => e.Attributes[attID].ToString(), e => e.Attributes[attName].ToString());
/* foreach (var c in entCollection.Entities)
{
dic.Add(c.Attributes[attID].ToString(), c.Attributes[attName].ToString());
}
}*/
}
Load Global OptionSet List
private void Load_OptionSetList(String optionSetName, Dictionary dic)
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveOptionSetRequest retrieveOptionSetRequest =new RetrieveOptionSetRequest{Name = optionSetName};
RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)serviceProxy.Execute(retrieveOptionSetRequest);
OptionSetMetadata retrievedOptionSetMetadata =(OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;
OptionMetadata[] optionList =retrievedOptionSetMetadata.Options.ToArray();
foreach (OptionMetadata oMD in optionList)
{
dic.Add(oMD.Value.ToString(), oMD.Label.UserLocalizedLabel.Label.ToString());
}
}
}
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveOptionSetRequest retrieveOptionSetRequest =new RetrieveOptionSetRequest{Name = optionSetName};
RetrieveOptionSetResponse retrieveOptionSetResponse = (RetrieveOptionSetResponse)serviceProxy.Execute(retrieveOptionSetRequest);
OptionSetMetadata retrievedOptionSetMetadata =(OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;
OptionMetadata[] optionList =retrievedOptionSetMetadata.Options.ToArray();
foreach (OptionMetadata oMD in optionList)
{
dic.Add(oMD.Value.ToString(), oMD.Label.UserLocalizedLabel.Label.ToString());
}
}
}
Using Linq
dicEmployeeType = OptionSetList("gab_employeetype");
private Dictionary<String, String> OptionSetList(String optionSetName)
{
Dictionary<String, String> dic = new Dictionary<String, String>();
using (serviceProxy)
{
RetrieveOptionSetRequest rosRequest = new RetrieveOptionSetRequest { Name = optionSetName };
RetrieveOptionSetResponse rosResponse = (RetrieveOptionSetResponse)serviceProxy.Execute(rosRequest);
OptionSetMetadata osm = (OptionSetMetadata)rosResponse.OptionSetMetadata;
dic = osm.Options.ToDictionary(e => e.Value.ToString(), e => e.Label.UserLocalizedLabel.Label.ToString());
}
return dic;
}
private Dictionary<String, String> OptionSetList(String optionSetName)
{
Dictionary<String, String> dic = new Dictionary<String, String>();
using (serviceProxy)
{
RetrieveOptionSetRequest rosRequest = new RetrieveOptionSetRequest { Name = optionSetName };
RetrieveOptionSetResponse rosResponse = (RetrieveOptionSetResponse)serviceProxy.Execute(rosRequest);
OptionSetMetadata osm = (OptionSetMetadata)rosResponse.OptionSetMetadata;
dic = osm.Options.ToDictionary(e => e.Value.ToString(), e => e.Label.UserLocalizedLabel.Label.ToString());
}
return dic;
}
Load Local OptionSet List
private void LocalOptionSetList(String entityName, String optionSetName, Dictionary dic)
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveAttributeRequest raRequest = new RetrieveAttributeRequest
{
EntityLogicalName = entityName,
LogicalName = optionSetName,
RetrieveAsIfPublished = true
};
RetrieveAttributeResponse raResponse = (RetrieveAttributeResponse)serviceProxy.Execute(raRequest);
PicklistAttributeMetadata paMetadata = (PicklistAttributeMetadata)raResponse.AttributeMetadata;
OptionMetadata[] optionList = paMetadata.OptionSet.Options.ToArray();
foreach (OptionMetadata oMD in optionList)
{
dic.Add(oMD.Value.ToString(), oMD.Label.UserLocalizedLabel.Label.ToString());
}
}
}
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveAttributeRequest raRequest = new RetrieveAttributeRequest
{
EntityLogicalName = entityName,
LogicalName = optionSetName,
RetrieveAsIfPublished = true
};
RetrieveAttributeResponse raResponse = (RetrieveAttributeResponse)serviceProxy.Execute(raRequest);
PicklistAttributeMetadata paMetadata = (PicklistAttributeMetadata)raResponse.AttributeMetadata;
OptionMetadata[] optionList = paMetadata.OptionSet.Options.ToArray();
foreach (OptionMetadata oMD in optionList)
{
dic.Add(oMD.Value.ToString(), oMD.Label.UserLocalizedLabel.Label.ToString());
}
}
}
Load All Global OptionSet
private void Load_AllGlobalOptionSet()
{
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveAllOptionSetsRequest retrieveAllOptionSetsRequest =new RetrieveAllOptionSetsRequest();
RetrieveAllOptionSetsResponse retrieveAllOptionSetsResponse = (RetrieveAllOptionSetsResponse)serviceProxy.Execute(retrieveAllOptionSetsRequest);
if (retrieveAllOptionSetsResponse.OptionSetMetadata.Count() > 0)
{
Debug.WriteLine("All the global option sets retrieved as below:");
int count = 1;
foreach (OptionSetMetadataBase optionSetMetadata in retrieveAllOptionSetsResponse.OptionSetMetadata)
{
Debug.WriteLine("{0} {1}", count++, (optionSetMetadata.DisplayName.LocalizedLabels.Count >0)? optionSetMetadata.DisplayName.LocalizedLabels[0].Label : String.Empty);
}
}
}
}
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null))
{
serviceProxy.EnableProxyTypes();
RetrieveAllOptionSetsRequest retrieveAllOptionSetsRequest =new RetrieveAllOptionSetsRequest();
RetrieveAllOptionSetsResponse retrieveAllOptionSetsResponse = (RetrieveAllOptionSetsResponse)serviceProxy.Execute(retrieveAllOptionSetsRequest);
if (retrieveAllOptionSetsResponse.OptionSetMetadata.Count() > 0)
{
Debug.WriteLine("All the global option sets retrieved as below:");
int count = 1;
foreach (OptionSetMetadataBase optionSetMetadata in retrieveAllOptionSetsResponse.OptionSetMetadata)
{
Debug.WriteLine("{0} {1}", count++, (optionSetMetadata.DisplayName.LocalizedLabels.Count >0)? optionSetMetadata.DisplayName.LocalizedLabels[0].Label : String.Empty);
}
}
}
}
Read Dictionary Key & Value
public CRM()
{
Load_PickList("gab_state", "gab_stateid", "gab_name", dicState);
Load_OptionSetList("gab_suffix", dicSuffix);
foreach (var pair in dicState)
{
Debug.WriteLine("{0}, {1}", pair.Key, pair.Value);
}
var fKey = dicJurisdiction.Single(x => x.Value == "NE");
Console.WriteLine(fKey.Key);
}
{
Load_PickList("gab_state", "gab_stateid", "gab_name", dicState);
Load_OptionSetList("gab_suffix", dicSuffix);
foreach (var pair in dicState)
{
Debug.WriteLine("{0}, {1}", pair.Key, pair.Value);
}
var fKey = dicJurisdiction.Single(x => x.Value == "NE");
Console.WriteLine(fKey.Key);
}
Credentials
internal ClientCredentials Credentials
{
get
{
//Authenticate using credentials of the logged in user;
ClientCredentials cntCredentials = new ClientCredentials();
cntCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["CRM_UserName"].ToString();
cntCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["CRM_Password"].ToString();
//cntCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
return cntCredentials;
}
}
internal OrganizationServiceProxy CrmService
{
get
{
OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null);
serviceProxy.EnableProxyTypes();
return serviceProxy;
}
}
{
get
{
//Authenticate using credentials of the logged in user;
ClientCredentials cntCredentials = new ClientCredentials();
cntCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["CRM_UserName"].ToString();
cntCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["CRM_Password"].ToString();
//cntCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
return cntCredentials;
}
}
internal OrganizationServiceProxy CrmService
{
get
{
OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null);
serviceProxy.EnableProxyTypes();
return serviceProxy;
}
}
No comments:
Post a Comment