/// <summary> /// Executes the WorkFlow. /// </summary> /// <param name="crmWorkflowContext">The <see cref="WorkFlowActivityBase.LocalWorkflowContext"/> which contains the /// <param name="executionContext" > <see cref="CodeActivityContext"/> /// </param> /// <remarks> /// For improved performance, Microsoft Dynamics 365 caches WorkFlow instances. /// The WorkFlow's Execute method should be written to be stateless as the constructor /// is not called for every invocation of the WorkFlow. Also, multiple system threads /// could execute the WorkFlow at the same time. All per invocation state information /// is stored in the context. This means that you should not use global variables in WorkFlows. /// </remarks> public override void ExecuteCRMWorkFlowActivity(CodeActivityContext executionContext, LocalWorkflowContext crmWorkflowContext) { if (crmWorkflowContext == null) { throw new ArgumentNullException("crmWorkflowContext"); } TracingService = executionContext.GetExtension <ITracingService>(); Service = crmWorkflowContext.OrganizationService; Context = crmWorkflowContext.WorkflowExecutionContext; var application = Application.Get(executionContext); var permit = Permit.Get(executionContext); if (application == null && permit == null) { return; } string returnData; if (application != null) { TracingService.Trace("Getting Standard Rules for application: {0}", application.Id.ToString()); returnData = Service.GetStandardRules(application); } else { TracingService.Trace("Getting Standard Rules for permit: {0}", permit.Id.ToString()); returnData = Service.GetStandardRules(permit, defra_permit.EntityLogicalName, defra_permit.Fields.defra_permitId, defra_permit_lines.EntityLogicalName); } ReturnData.Set(executionContext, returnData); TracingService.Trace("Returning data: {0}", returnData); }
/// <summary> /// Executes the WorkFlow. /// </summary> /// <param name="crmWorkflowContext">The <see cref="LocalWorkflowContext"/> which contains the /// <param name="executionContext" > <see cref="CodeActivityContext"/> /// </param> /// <remarks> /// For improved performance, Microsoft Dynamics 365 caches WorkFlow instances. /// The WorkFlow's Execute method should be written to be stateless as the constructor /// is not called for every invocation of the WorkFlow. Also, multiple system threads /// could execute the WorkFlow at the same time. All per invocation state information /// is stored in the context. This means that you should not use global variables in WorkFlows. /// </remarks> public override void ExecuteCRMWorkFlowActivity(CodeActivityContext executionContext, LocalWorkflowContext crmWorkflowContext) { if (crmWorkflowContext == null) { throw new ArgumentNullException("crmWorkflowContext"); } TracingService = executionContext.GetExtension <ITracingService>(); Service = crmWorkflowContext.OrganizationService; Context = crmWorkflowContext.WorkflowExecutionContext; var application = Application.Get(executionContext); var permit = Permit.Get(executionContext); if (application == null && permit == null) { return; } var returnData = string.Empty; if (application != null) { TracingService.Trace("Getting site name and address for application: {0}", application.Id.ToString()); returnData = Service.GetSiteDetails(application); } else if (permit != null) { TracingService.Trace("Getting site name and address for permit: {0}", permit.Id.ToString()); returnData = Service.GetSiteDetails(permit, "defra_permit", "defra_permitid"); } if (string.IsNullOrEmpty(returnData)) { returnData = "not applicable"; } this.SiteDetails.Set(executionContext, returnData); TracingService.Trace("Site name and address: {0}", returnData); }
public IHttpActionResult Get(string PermitNumber) { if (PermitNumber == null) { return(Ok()); // Let's just not do anything if they post a null. } var ua = new UserAccess(User.Identity.Name); List <Permit> lp = Permit.Get( PermitNumber, ua.current_access, $@"Permit Controller: Get(string PermitNumber); PermitNumber: {PermitNumber}; user: {ua.user_name}"); if (lp == null) { return(InternalServerError()); } else { return(Ok(lp)); } }