예제 #1
0
        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 _IncidentRecordURL = this.IncidentRecordURL.Get(executionContext);
            if (_IncidentRecordURL == null || _IncidentRecordURL == "")
            {
                return;
            }
            string[] urlParts             = _IncidentRecordURL.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);
            ApplyRoutingRuleRequest routeRequest = new ApplyRoutingRuleRequest();
            routeRequest.Target = new EntityReference(EntityName, new Guid(ParentId));
            ApplyRoutingRuleResponse routeResponse = (ApplyRoutingRuleResponse)objCommon.service.Execute(routeRequest);

            #endregion
        }
예제 #2
0
        /// <summary>
        /// Applies the active <c>Routing Rule</c> to the <c>Incident (case)</c>.
        /// <para>
        /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.applyroutingrulerequest(v=crm.8).aspx
        /// </para>
        /// </summary>
        /// <param name="id"><c>Incident</c> Id</param>
        /// <returns>
        /// <see cref="ApplyRoutingRuleResponse"/>
        /// </returns>
        public ApplyRoutingRuleResponse ApplyRoute(Guid id)
        {
            ExceptionThrow.IfGuidEmpty(id, "id");

            ApplyRoutingRuleRequest request = new ApplyRoutingRuleRequest()
            {
                Target = new EntityReference(this.EntityName, id)
            };

            return((ApplyRoutingRuleResponse)this.OrganizationService.Execute(request));
        }