diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs index f986fbce..c24c2173 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs @@ -35,6 +35,7 @@ using WebsitePanel.Providers.CRM; using WebsitePanel.Providers.DNS; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.ResultObjects; +using System.Text.RegularExpressions; namespace WebsitePanel.EnterpriseServer { @@ -237,6 +238,12 @@ namespace WebsitePanel.EnterpriseServer return value; } + public static string GetOrganizationCRMUniqueName(string orgName) + { + return Regex.Replace(orgName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled); + } + + public static OrganizationResult CreateOrganization(int organizationId, string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, string regionName, int userId, string collation, int baseLanguageCode) { OrganizationResult res = StartTask("CRM", "CREATE_ORGANIZATION"); @@ -329,7 +336,7 @@ namespace WebsitePanel.EnterpriseServer if (port != string.Empty) port = ":" + port; - string strDomainName = string.Format("{0}.{1}", org.OrganizationId, + string strDomainName = string.Format("{0}.{1}", GetOrganizationCRMUniqueName(org.OrganizationId), serviceSettings[Constants.IFDWebApplicationRootDomain]); org.CrmUrl = string.Format("{0}://{1}{2}", schema, strDomainName, port); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2013/CRMBase.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2013/CRMBase.cs index 3a52bdca..f7c24b41 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2013/CRMBase.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Crm2013/CRMBase.cs @@ -183,12 +183,19 @@ namespace WebsitePanel.Providers.HostedSolution return orgResponse.Details; } + public virtual string GetOrganizationUniqueName(string orgName) + { + return Regex.Replace(orgName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled); + } + protected virtual Uri GetCRMOrganizationUrl(string orgName) { //string url = "https://" + ProviderSettings[Constants.AppRootDomain] + ":" + ProviderSettings[Constants.Port] + "/" + orgName + "/XRMServices/2011/Organization.svc"; string url; + orgName = GetOrganizationUniqueName(orgName); + string organizationWebServiceUri = ProviderSettings[Constants.OrganizationWebService]; if (String.IsNullOrEmpty(orgName)) @@ -723,7 +730,7 @@ namespace WebsitePanel.Providers.HostedSolution OrganizationResult ret = StartLog("CreateOrganizationInternal"); - organizationUniqueName = Regex.Replace(organizationUniqueName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled); + organizationUniqueName = GetOrganizationUniqueName(organizationUniqueName); // calculate UserRootPath string ldapstr = "";