CRM2013 : fix bug for OrganizationId with '.'

This commit is contained in:
dev_amdtel 2014-11-03 17:39:43 +03:00
parent 9a18300889
commit 241fdc0fe4
2 changed files with 16 additions and 2 deletions

View file

@ -35,6 +35,7 @@ using WebsitePanel.Providers.CRM;
using WebsitePanel.Providers.DNS; using WebsitePanel.Providers.DNS;
using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.HostedSolution;
using WebsitePanel.Providers.ResultObjects; using WebsitePanel.Providers.ResultObjects;
using System.Text.RegularExpressions;
namespace WebsitePanel.EnterpriseServer namespace WebsitePanel.EnterpriseServer
{ {
@ -237,6 +238,12 @@ namespace WebsitePanel.EnterpriseServer
return value; 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) public static OrganizationResult CreateOrganization(int organizationId, string baseCurrencyCode, string baseCurrencyName, string baseCurrencySymbol, string regionName, int userId, string collation, int baseLanguageCode)
{ {
OrganizationResult res = StartTask<OrganizationResult>("CRM", "CREATE_ORGANIZATION"); OrganizationResult res = StartTask<OrganizationResult>("CRM", "CREATE_ORGANIZATION");
@ -329,7 +336,7 @@ namespace WebsitePanel.EnterpriseServer
if (port != string.Empty) if (port != string.Empty)
port = ":" + port; port = ":" + port;
string strDomainName = string.Format("{0}.{1}", org.OrganizationId, string strDomainName = string.Format("{0}.{1}", GetOrganizationCRMUniqueName(org.OrganizationId),
serviceSettings[Constants.IFDWebApplicationRootDomain]); serviceSettings[Constants.IFDWebApplicationRootDomain]);
org.CrmUrl = string.Format("{0}://{1}{2}", schema, strDomainName, port); org.CrmUrl = string.Format("{0}://{1}{2}", schema, strDomainName, port);

View file

@ -183,12 +183,19 @@ namespace WebsitePanel.Providers.HostedSolution
return orgResponse.Details; return orgResponse.Details;
} }
public virtual string GetOrganizationUniqueName(string orgName)
{
return Regex.Replace(orgName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled);
}
protected virtual Uri GetCRMOrganizationUrl(string orgName) protected virtual Uri GetCRMOrganizationUrl(string orgName)
{ {
//string url = "https://" + ProviderSettings[Constants.AppRootDomain] + ":" + ProviderSettings[Constants.Port] + "/" + orgName + "/XRMServices/2011/Organization.svc"; //string url = "https://" + ProviderSettings[Constants.AppRootDomain] + ":" + ProviderSettings[Constants.Port] + "/" + orgName + "/XRMServices/2011/Organization.svc";
string url; string url;
orgName = GetOrganizationUniqueName(orgName);
string organizationWebServiceUri = ProviderSettings[Constants.OrganizationWebService]; string organizationWebServiceUri = ProviderSettings[Constants.OrganizationWebService];
if (String.IsNullOrEmpty(orgName)) if (String.IsNullOrEmpty(orgName))
@ -723,7 +730,7 @@ namespace WebsitePanel.Providers.HostedSolution
OrganizationResult ret = StartLog<OrganizationResult>("CreateOrganizationInternal"); OrganizationResult ret = StartLog<OrganizationResult>("CreateOrganizationInternal");
organizationUniqueName = Regex.Replace(organizationUniqueName, @"[^\dA-Za-z]", "-", RegexOptions.Compiled); organizationUniqueName = GetOrganizationUniqueName(organizationUniqueName);
// calculate UserRootPath // calculate UserRootPath
string ldapstr = ""; string ldapstr = "";