protected override void Execute(CodeActivityContext executionContext) { #region "Load CRM Service from context" Common objCommon = new Common(executionContext); objCommon.tracingService.Trace("Load CRM Service from context --- OK"); #endregion #region "Read Parameters" String _TargetRecordURL = this.TargetRecordURL.Get(executionContext); if (_TargetRecordURL == null || _TargetRecordURL == "") { return; } string[] urlParts = _TargetRecordURL.Split("?".ToArray()); string[] urlParams = urlParts[1].Split("&".ToCharArray()); string ParentObjectTypeCode = urlParams[0].Replace("etc=", ""); string ParentId = urlParams[1].Replace("id=", ""); objCommon.tracingService.Trace("ParentObjectTypeCode=" + ParentObjectTypeCode + "--ParentId=" + ParentId); #endregion #region "ApplyRoutingRuleRequest Execution" string EntityName = objCommon.sGetEntityNameFromCode(ParentObjectTypeCode, objCommon.service); CalculatePriceRequest calcReq = new CalculatePriceRequest(); EntityReference target = new EntityReference(EntityName, new Guid(ParentId)); calcReq.Target = target; CalculatePriceResponse calcRes = (CalculatePriceResponse)objCommon.service.Execute(calcReq); #endregion }
public async Task <Response <CalculatePriceResponse> > CalculateAsync(PurchaseRequestContent content, CancellationToken cancellationToken = default) { Argument.AssertNotNull(content, nameof(content)); using var message = CreateCalculateRequest(content); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { CalculatePriceResponse value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = CalculatePriceResponse.DeserializeCalculatePriceResponse(document.RootElement); return(Response.FromValue(value, message.Response)); }