CRM 2011 get List of all Organizations and get url from organization details collection
How to get URL from list of organisations when getting data back from OrganizationDetailCollection
Method to get list of OrganizationDetailCollection
public static OrganizationDetailCollection GetOrganizations()
{
string url = CrmServerConnection.GetMSCRMServerUrl();
if (string.IsNullOrEmpty(url))
{
url = ConfigurationManager.AppSettings[“MSCRM”];
}
System.Diagnostics.Debug.WriteLine(“Crm11Services: GetOrganizations() Get MSCRM Url: ” + url);
IServiceConfiguration dinfo =
ServiceConfigurationFactory.CreateConfiguration( GetDisSerUri (url));
var creds = new ClientCredentials();
creds.Windows.ClientCredential = (System.Net.NetworkCredential)System.Net.CredentialCache.DefaultCredentials;
DiscoveryServiceProxy dsp = new DiscoveryServiceProxy(dinfo, creds);
dsp.Authenticate();
RetrieveOrganizationsRequest orgRequest = new RetrieveOrganizationsRequest();
RetrieveOrganizationsResponse orgResponse = dsp.Execute(orgRequest) as RetrieveOrganizationsResponse;
var readas = orgResponse.Details;
return orgResponse.Details;
}
Below is the method to get Uri
private static Uri GetDisSerUri(string serv)
{
string dis = @”/XRMServices/2011/Discovery.svc”;
return new Uri(string.Format(“{0}{1}”, serv, dis));
}
In above method we can get list of all organizations
Once we loop through these organizations we can get uri and all other data in code below
foreach (var od in allOrgs)
{
CrmOrganisation org = new CrmOrganisation();
org.OrgId = od.OrganizationId;
org.OrgName = od.FriendlyName;
org.FriendlyName = od.FriendlyName;
//get exact url
foreach (var endpoint in od.Endpoints)
{
if (endpoint.Key == EndpointType.WebApplication)
org.Url = endpoint.Value.ToString();
}
systemOrganisations.Add(org);
}