/// <summary> /// This method first connects to the Deployment service. Then, /// a variety of messages are used to retrieve deployment information. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete /// all created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { //<snippetUseDeploymentServiceMessages1> // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri, serverConfig.Credentials, serverConfig.DeviceCredentials)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); // Instantiate DeploymentServiceClient for calling the service. DeploymentServiceClient serviceClient = Deployment.Proxy.ProxyClientHelper.CreateClient( new Uri(serverConfig.DiscoveryUri.ToString() .Replace("Services", "Deployment") .Replace("Discovery", "Deployment"))); // Setting credentials from the current security context. if (serverConfig.Credentials == null) { serviceClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; } else { serviceClient.ClientCredentials.Windows.ClientCredential = serverConfig.Credentials.Windows.ClientCredential; } // Retrieve all deployed instances of Microsoft Dynamics CRM. var organizations = serviceClient.RetrieveAll(DeploymentEntityType.Organization); // Print list of all retrieved organizations. Console.WriteLine("Organizations in your deployment"); Console.WriteLine("================================"); foreach (var organization in organizations) { Console.WriteLine(organization.Name); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve details of first organization from previous call. Deployment.Organization deployment = (Deployment.Organization)serviceClient.Retrieve( DeploymentEntityType.Organization, organizations[0]); // Print out retrieved details about your organization. Console.WriteLine(String.Format( "Selected deployment details for {0}", serverConfig.OrganizationName)); Console.WriteLine("========================================="); Console.Write("Friendly Name: "); Console.WriteLine(deployment.FriendlyName); Console.Write("Unique Name: "); Console.WriteLine(deployment.UniqueName); Console.Write("Organization Version: "); Console.WriteLine(deployment.Version); Console.Write("SQL Server Name: "); Console.WriteLine(deployment.SqlServerName); Console.Write("SRS URL: "); Console.WriteLine(deployment.SrsUrl); Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve license and user information for your organization. TrackLicenseRequest licenseRequest = new TrackLicenseRequest(); TrackLicenseResponse licenseResponse = (TrackLicenseResponse)serviceClient.Execute(licenseRequest); // Print out the number of servers and the user list. Console.WriteLine(String.Format( "License and user information for {0}", serverConfig.OrganizationName)); Console.WriteLine("========================================="); Console.Write("Number of servers: "); Console.WriteLine(licenseResponse.Servers != null ? licenseResponse.Servers.Count.ToString() : "null"); Console.WriteLine("Users:"); foreach (OrganizationUserInfo user in licenseResponse.Users.ToArray()) { Console.WriteLine(user.FullName); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve advanced settings for your organization. // Note that the columnset must contain at least one column. Setting // AllColumns to true results in an error. RetrieveAdvancedSettingsRequest request = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "Server", ColumnSet = new ColumnSet( new string[] { "Id", "FullName", "Name", "Roles", "State", "Version" }) }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(request)).Entity; // Print out all advanced settings where IsWritable==true. Console.WriteLine("Advanced deployment settings that can be updated"); Console.WriteLine("================================================"); foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine("<End of Listing>"); Console.WriteLine(); } //</snippetUseDeploymentServiceMessages1> } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException <Microsoft.Xrm.Sdk.OrganizationServiceFault> ) { // You can handle an exception here or pass it back to the calling method. throw; } }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { connection = cm.MSCRMConnections[comboBoxSource.SelectedIndex]; LogManager.WriteLog("Loading Server Settings."); toolStripStatusLabel1.Text = ""; try { string deploymentURI = connection.ServerAddress.Replace(connection.OrganizationName + "/", "") + "XRMDeployment/2011/Deployment.svc"; serviceClient = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri(deploymentURI)); serviceClient.ClientCredentials.Windows.ClientCredential.UserName = connection.UserName; serviceClient.ClientCredentials.Windows.ClientCredential.Password = connection.Password; // Retrieve all deployed instances of Microsoft Dynamics CRM. var organizations = serviceClient.RetrieveAll(DeploymentEntityType.Organization); Microsoft.Xrm.Sdk.Deployment.EntityInstanceId currentOrganization = null; foreach (var organization in organizations) { if (organization.Name.ToLower() == connection.OrganizationName.ToLower()) currentOrganization = organization; } RetrieveAdvancedSettingsRequest request = new RetrieveAdvancedSettingsRequest() { ConfigurationEntityName = "Deployment", ColumnSet = new ColumnSet() }; ConfigurationEntity ce = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(request)).Entity; foreach (var setting in ce.Attributes) { if (setting.Key == "AggregateQueryRecordLimit") numericUpDownAggregateQueryRecordLimit.Text = setting.Value.ToString(); else if (setting.Key == "AutomaticallyInstallDatabaseUpdates") checkBoxAutomaticallyInstallDatabaseUpdates.Checked = (bool)setting.Value; else if (setting.Key == "AutomaticallyReprovisionLanguagePacks") checkBoxAutomaticallyReprovisionLanguagePacks.Checked = (bool)setting.Value; } // Retrieve details of first organization from previous call. Microsoft.Xrm.Sdk.Deployment.Organization deployment = (Microsoft.Xrm.Sdk.Deployment.Organization)serviceClient.Retrieve( DeploymentEntityType.Organization, currentOrganization); // Print out retrieved details about your organization. string organizationProperties = ""; organizationProperties += "Friendly Name: " + deployment.FriendlyName + "\r\n"; organizationProperties += "Unique Name: " + deployment.UniqueName + "\r\n"; organizationProperties += "Organization Version: " + deployment.Version + "\r\n"; organizationProperties += "SQL Server Name: " + deployment.SqlServerName + "\r\n"; organizationProperties += "SRS URL: " + deployment.SrsUrl + "\r\n"; organizationProperties += "Base Currency Code: " + deployment.BaseCurrencyCode + "\r\n"; organizationProperties += "Base Currency Name: " + deployment.BaseCurrencyName + "\r\n"; organizationProperties += "Base Currency Precision: " + deployment.BaseCurrencyPrecision + "\r\n"; organizationProperties += "Base Currency Symbol: " + deployment.BaseCurrencySymbol + "\r\n"; organizationProperties += "Base Language Code: " + deployment.BaseLanguageCode + "\r\n"; organizationProperties += "Database Name: " + deployment.DatabaseName + "\r\n"; organizationProperties += "Sql Collation: " + deployment.SqlCollation + "\r\n"; organizationProperties += "Sqm Is Enabled: " + deployment.SqmIsEnabled + "\r\n"; organizationProperties += "State: " + deployment.State + "\r\n"; textBoxOrganizationProperties.Text = organizationProperties; // Retrieve license and user information for your organization. TrackLicenseRequest licenseRequest = new TrackLicenseRequest(); TrackLicenseResponse licenseResponse = (TrackLicenseResponse)serviceClient.Execute(licenseRequest); // Print out the number of servers and the user list. string licenseanduserinformation = "Number of servers: "; licenseanduserinformation += licenseResponse.NumberOfServers.HasValue ? licenseResponse.NumberOfServers.Value.ToString() : "null"; licenseanduserinformation += "\r\n"; licenseanduserinformation += "Users:\r\n"; foreach (String user in licenseResponse.UsersList) { licenseanduserinformation += user + "\r\n"; } textBoxLicenceanduserinformation.Text = licenseanduserinformation; // Retrieve server settings for your organization. RetrieveAdvancedSettingsRequest requestServerSettings = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "ServerSettings", ColumnSet = new ColumnSet(false) }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(requestServerSettings)).Entity; // Print out all advanced settings where IsWritable==true. foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { if (setting.Key == "DisableUserInfoClaim") checkBoxDisableUserInfoClaim.Checked = (bool)setting.Value; else if (setting.Key == "MaxExpandCount") numericUpDownMaxExpandCount.Text = setting.Value.ToString(); else if (setting.Key == "MaxResultsPerCollection") numericUpDownMaxResultsPerCollection.Text = setting.Value.ToString(); else if (setting.Key == "NlbEnabled") checkBoxNlbEnabled.Checked = (bool)setting.Value; else if (setting.Key == "PostponeAppFabricRequestsInMinutes") numericUpDownPostponeAppFabricRequestsInMinutes.Text = setting.Value.ToString(); else if (setting.Key == "PostViaExternalRouter") checkBoxPostViaExternalRouter.Checked = (bool)setting.Value; else if (setting.Key == "SslHeader") textBoxSslHeader.Text = setting.Value.ToString(); } } toolStripStatusLabel1.Text = connection.OrganizationName + " deployment properties were successfully loaded."; } catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { connection = cm.MSCRMConnections[comboBoxSource.SelectedIndex]; LogManager.WriteLog("Loading Server Settings."); toolStripStatusLabel1.Text = ""; try { string deploymentURI = connection.ServerAddress.Replace(connection.OrganizationName + "/", "") + "XRMDeployment/2011/Deployment.svc"; serviceClient = Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri(deploymentURI)); serviceClient.ClientCredentials.Windows.ClientCredential.UserName = connection.UserName; serviceClient.ClientCredentials.Windows.ClientCredential.Password = connection.Password; // Retrieve all deployed instances of Microsoft Dynamics CRM. var organizations = serviceClient.RetrieveAll(DeploymentEntityType.Organization); Microsoft.Xrm.Sdk.Deployment.EntityInstanceId currentOrganization = null; foreach (var organization in organizations) { if (organization.Name.ToLower() == connection.OrganizationName.ToLower()) { currentOrganization = organization; } } RetrieveAdvancedSettingsRequest request = new RetrieveAdvancedSettingsRequest() { ConfigurationEntityName = "Deployment", ColumnSet = new ColumnSet() }; ConfigurationEntity ce = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(request)).Entity; foreach (var setting in ce.Attributes) { if (setting.Key == "AggregateQueryRecordLimit") { numericUpDownAggregateQueryRecordLimit.Text = setting.Value.ToString(); } else if (setting.Key == "AutomaticallyInstallDatabaseUpdates") { checkBoxAutomaticallyInstallDatabaseUpdates.Checked = (bool)setting.Value; } else if (setting.Key == "AutomaticallyReprovisionLanguagePacks") { checkBoxAutomaticallyReprovisionLanguagePacks.Checked = (bool)setting.Value; } } // Retrieve details of first organization from previous call. Microsoft.Xrm.Sdk.Deployment.Organization deployment = (Microsoft.Xrm.Sdk.Deployment.Organization)serviceClient.Retrieve( DeploymentEntityType.Organization, currentOrganization); // Print out retrieved details about your organization. string organizationProperties = ""; organizationProperties += "Friendly Name: " + deployment.FriendlyName + "\r\n"; organizationProperties += "Unique Name: " + deployment.UniqueName + "\r\n"; organizationProperties += "Organization Version: " + deployment.Version + "\r\n"; organizationProperties += "SQL Server Name: " + deployment.SqlServerName + "\r\n"; organizationProperties += "SRS URL: " + deployment.SrsUrl + "\r\n"; organizationProperties += "Base Currency Code: " + deployment.BaseCurrencyCode + "\r\n"; organizationProperties += "Base Currency Name: " + deployment.BaseCurrencyName + "\r\n"; organizationProperties += "Base Currency Precision: " + deployment.BaseCurrencyPrecision + "\r\n"; organizationProperties += "Base Currency Symbol: " + deployment.BaseCurrencySymbol + "\r\n"; organizationProperties += "Base Language Code: " + deployment.BaseLanguageCode + "\r\n"; organizationProperties += "Database Name: " + deployment.DatabaseName + "\r\n"; organizationProperties += "Sql Collation: " + deployment.SqlCollation + "\r\n"; organizationProperties += "Sqm Is Enabled: " + deployment.SqmIsEnabled + "\r\n"; organizationProperties += "State: " + deployment.State + "\r\n"; textBoxOrganizationProperties.Text = organizationProperties; // Retrieve license and user information for your organization. TrackLicenseRequest licenseRequest = new TrackLicenseRequest(); TrackLicenseResponse licenseResponse = (TrackLicenseResponse)serviceClient.Execute(licenseRequest); // Print out the number of servers and the user list. string licenseanduserinformation = "Number of servers: "; licenseanduserinformation += licenseResponse.NumberOfServers.HasValue ? licenseResponse.NumberOfServers.Value.ToString() : "null"; licenseanduserinformation += "\r\n"; licenseanduserinformation += "Users:\r\n"; foreach (String user in licenseResponse.UsersList) { licenseanduserinformation += user + "\r\n"; } textBoxLicenceanduserinformation.Text = licenseanduserinformation; // Retrieve server settings for your organization. RetrieveAdvancedSettingsRequest requestServerSettings = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "ServerSettings", ColumnSet = new ColumnSet(false) }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(requestServerSettings)).Entity; // Print out all advanced settings where IsWritable==true. foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { if (setting.Key == "DisableUserInfoClaim") { checkBoxDisableUserInfoClaim.Checked = (bool)setting.Value; } else if (setting.Key == "MaxExpandCount") { numericUpDownMaxExpandCount.Text = setting.Value.ToString(); } else if (setting.Key == "MaxResultsPerCollection") { numericUpDownMaxResultsPerCollection.Text = setting.Value.ToString(); } else if (setting.Key == "NlbEnabled") { checkBoxNlbEnabled.Checked = (bool)setting.Value; } else if (setting.Key == "PostponeAppFabricRequestsInMinutes") { numericUpDownPostponeAppFabricRequestsInMinutes.Text = setting.Value.ToString(); } else if (setting.Key == "PostViaExternalRouter") { checkBoxPostViaExternalRouter.Checked = (bool)setting.Value; } else if (setting.Key == "SslHeader") { textBoxSslHeader.Text = setting.Value.ToString(); } } } toolStripStatusLabel1.Text = connection.OrganizationName + " deployment properties were successfully loaded."; } catch (FaultException <Microsoft.Xrm.Sdk.OrganizationServiceFault> ex) { //string url = connection.ServerAddress + "main.aspx?pagetype=entityrecord&etn=eaf_contrat_client&id=" + entity.Id.ToString(); LogManager.WriteLog("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); MessageBox.Show("Error: " + ex.Detail.Message + "\n" + ex.Detail.TraceText); } catch (Exception ex) { if (ex.InnerException != null) { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message + "\n" + ex.InnerException.Message); } else { LogManager.WriteLog("Error:" + ex.Message); MessageBox.Show("Error:" + ex.Message); } } }
/// <summary> /// This method first connects to the Deployment service. Then, /// a variety of messages are used to retrieve deployment information. /// </summary> /// <param name="serverConfig">Contains server connection information.</param> /// <param name="promptforDelete">When True, the user will be prompted to delete /// all created entities.</param> public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete) { try { //<snippetUseDeploymentServiceMessages1> // Connect to the Organization service. // The using statement assures that the service proxy will be properly disposed. using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials)) { // This statement is required to enable early-bound type support. _serviceProxy.EnableProxyTypes(); // Instantiate DeploymentServiceClient for calling the service. DeploymentServiceClient serviceClient = Deployment.Proxy.ProxyClientHelper.CreateClient( new Uri(serverConfig.DiscoveryUri.ToString() .Replace("Services", "Deployment") .Replace("Discovery", "Deployment"))); // Setting credentials from the current security context. if (serverConfig.Credentials == null) { serviceClient.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; } else { serviceClient.ClientCredentials.Windows.ClientCredential = serverConfig.Credentials.Windows.ClientCredential; } // Retrieve all deployed instances of Microsoft Dynamics CRM. var organizations = serviceClient.RetrieveAll(DeploymentEntityType.Organization); // Print list of all retrieved organizations. Console.WriteLine("Organizations in your deployment"); Console.WriteLine("================================"); foreach (var organization in organizations) { Console.WriteLine(organization.Name); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve details of first organization from previous call. Deployment.Organization deployment = (Deployment.Organization)serviceClient.Retrieve( DeploymentEntityType.Organization, organizations[0]); // Print out retrieved details about your organization. Console.WriteLine(String.Format( "Selected deployment details for {0}", serverConfig.OrganizationName)); Console.WriteLine("========================================="); Console.Write("Friendly Name: "); Console.WriteLine(deployment.FriendlyName); Console.Write("Unique Name: "); Console.WriteLine(deployment.UniqueName); Console.Write("Organization Version: "); Console.WriteLine(deployment.Version); Console.Write("SQL Server Name: "); Console.WriteLine(deployment.SqlServerName); Console.Write("SRS URL: "); Console.WriteLine(deployment.SrsUrl); Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve license and user information for your organization. TrackLicenseRequest licenseRequest = new TrackLicenseRequest(); TrackLicenseResponse licenseResponse = (TrackLicenseResponse)serviceClient.Execute(licenseRequest); // Print out the number of servers and the user list. Console.WriteLine(String.Format( "License and user information for {0}", serverConfig.OrganizationName)); Console.WriteLine("========================================="); Console.Write("Number of servers: "); Console.WriteLine(licenseResponse.Servers != null ? licenseResponse.Servers.Count.ToString() : "null"); Console.WriteLine("Users:"); foreach (OrganizationUserInfo user in licenseResponse.Users.ToArray()) { Console.WriteLine(user.FullName); } Console.WriteLine("<End of Listing>"); Console.WriteLine(); // Retrieve advanced settings for your organization. // Note that the columnset must contain at least one column. Setting // AllColumns to true results in an error. RetrieveAdvancedSettingsRequest request = new RetrieveAdvancedSettingsRequest { ConfigurationEntityName = "Server", ColumnSet = new ColumnSet( new string[] { "Id", "FullName", "Name", "Roles", "State", "Version" }) }; ConfigurationEntity configuration = ((RetrieveAdvancedSettingsResponse)serviceClient.Execute(request)).Entity; // Print out all advanced settings where IsWritable==true. Console.WriteLine("Advanced deployment settings that can be updated"); Console.WriteLine("================================================"); foreach (var setting in configuration.Attributes) { if (setting.Key != "Id") { Console.WriteLine( String.Format("{0}: {1}", setting.Key, setting.Value)); } } Console.WriteLine("<End of Listing>"); Console.WriteLine(); } //</snippetUseDeploymentServiceMessages1> } // Catch any service fault exceptions that Microsoft Dynamics CRM throws. catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>) { // You can handle an exception here or pass it back to the calling method. throw; } }