public override string ConstructUrl(Microsoft.Xrm.Sdk.ParameterCollection InputParameters, IPluginExecutionContext pluginExecutionContext, IOrganizationService organizationService, ITracingService tracingService = null) { int Lcid = (int)InputParameters[LcidKey]; string _address = string.Empty; if (Lcid == 0) { var userSettingsQuery = new QueryExpression("usersettings"); userSettingsQuery.ColumnSet.AddColumns("uilanguageid", "systemuserid"); userSettingsQuery.Criteria.AddCondition("systemuserid", ConditionOperator.Equal, pluginExecutionContext.InitiatingUserId); var userSettings = organizationService.RetrieveMultiple(userSettingsQuery); if (userSettings.Entities.Count > 0) { Lcid = (int)userSettings.Entities[0]["uilanguageid"]; } } // Arrange the address components in a single comma-separated string, according to LCID _address = GisUtility.FormatInternationalAddress(Lcid, (string)InputParameters[Address1Key], (string)InputParameters[PostalCodeKey], (string)InputParameters[CityKey], (string)InputParameters[StateKey], (string)InputParameters[CountryKey]); WebClient client = new WebClient(); var url = $"https://{ApiServer}{GeocodePath}/json?address={_address}&key={ApiKey}"; tracingService.Trace($"Calling {url}\n"); return(url); }
public override string ConstructUrl(ParameterCollection InputParameters, IPluginExecutionContext pluginExecutionContext, IOrganizationService organizationService, ITracingService tracingService = null) { int Lcid = (int)InputParameters[LcidKey]; string address = string.Empty; if (Lcid == 0) { var userSettingsQuery = new QueryExpression("usersettings"); userSettingsQuery.ColumnSet.AddColumns("uilanguageid", "systemuserid"); userSettingsQuery.Criteria.AddCondition("systemuserid", ConditionOperator.Equal, pluginExecutionContext.InitiatingUserId); var userSettings = organizationService.RetrieveMultiple(userSettingsQuery); if (userSettings.Entities.Count > 0) { Lcid = (int)userSettings.Entities[0]["uilanguageid"]; } } address = GisUtility.FormatInternationalAddress(Lcid, (string)InputParameters[Address1Key], (string)InputParameters[PostalCodeKey], (string)InputParameters[CityKey], (string)InputParameters[StateKey], (string)InputParameters[CountryKey]); var street = ((string)InputParameters[Address1Key]).Replace(" ", "+"); var city = ((string)InputParameters[CityKey]).Replace(" ", "+"); var state = (string)InputParameters[StateKey]; var postcode = (string)InputParameters[PostalCodeKey]; tracingService.Trace("street " + street); tracingService.Trace("postcode " + postcode); tracingService.Trace("city " + city); tracingService.Trace("state " + state); var url = $"https://{ApiServer}{GeocodePath}?street={street}&city={city}&state={state}&postcode={postcode}®ion=NA&dataset=Current"; tracingService.Trace($"Calling {url}\n"); return(url); }