private OrganizationResponse ExecuteRequest(OrganizationRequest request, EntityReference userRef, PluginContext parentPluginContext) { #if !(XRM_MOCKUP_2011 || XRM_MOCKUP_2013 || XRM_MOCKUP_2015) if (request is AssignRequest assignRequest) { var targetEntity = dataMethods.GetEntityOrNull(assignRequest.Target); if (targetEntity.GetAttributeValue <EntityReference>("ownerid") != assignRequest.Assignee) { var req = new UpdateRequest(); req.Target = new Entity(assignRequest.Target.LogicalName, assignRequest.Target.Id); req.Target.Attributes["ownerid"] = assignRequest.Assignee; Execute(req, userRef, parentPluginContext); } return(new AssignResponse()); } if (request is SetStateRequest setstateRequest) { var targetEntity = dataMethods.GetEntityOrNull(setstateRequest.EntityMoniker); if (targetEntity.GetAttributeValue <OptionSetValue>("statecode") != setstateRequest.State || targetEntity.GetAttributeValue <OptionSetValue>("statuscode") != setstateRequest.Status) { var req = new UpdateRequest(); req.Target = new Entity(setstateRequest.EntityMoniker.LogicalName, setstateRequest.EntityMoniker.Id); req.Target.Attributes["statecode"] = setstateRequest.State; req.Target.Attributes["statuscode"] = setstateRequest.Status; Execute(req, userRef, parentPluginContext); } return(new SetStateResponse()); } #endif if (workflowManager.GetActionDefaultNull(request.RequestName) != null) { return(ExecuteAction(request)); } // Execute matching handler function if (RequestHandlerMap.TryGetValue(request.RequestName, out Func <OrganizationRequest, EntityReference, OrganizationResponse> executeFunc)) { return(executeFunc(request, userRef)); } if (settings.ExceptionFreeRequests.Contains(request.RequestName)) { return(new OrganizationResponse()); } throw new NotImplementedException("Execute for the given request has not been implemented yet."); }