protected override void ExecuteCrmPlugin(LocalPluginContext localContext) { if (localContext == null) { throw new ArgumentNullException(nameof(localContext)); } try { AiLogger aiLogger = new AiLogger(_unsecureConfig, localContext.OrganizationService, localContext.TracingService, localContext.PluginExecutionContext, localContext.PluginExecutionContext.Stage, null); string message = ActionHelpers.GetInputValue <string>("message", localContext.PluginExecutionContext, localContext.TracingService); string severity = ActionHelpers.GetInputValue <string>("severity", localContext.PluginExecutionContext, localContext.TracingService); string severityValidationResult = AiTrace.ValidateSeverityValue(severity); if (!string.IsNullOrEmpty(severityValidationResult)) { localContext.TracingService.Trace(severityValidationResult); return; } bool isValid = Enum.TryParse(severity, out AiTraceSeverity traceSeverity); aiLogger.WriteTrace(message, isValid ? traceSeverity : AiTraceSeverity.Information); } catch (Exception e) { localContext.TracingService.Trace($"Unhandled Exception: {e.Message}"); } }
protected override void ExecuteCrmWorkFlowActivity(CodeActivityContext context, LocalWorkflowContext localContext) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (localContext == null) { throw new ArgumentNullException(nameof(localContext)); } string aiSetupJson = AiSetupJson.Get(context); AiLogger aiLogger = new AiLogger(aiSetupJson, localContext.OrganizationService, localContext.TracingService, localContext.WorkflowExecutionContext, null, localContext.WorkflowExecutionContext.WorkflowCategory); string message = Message.Get(context); string severity = Severity.Get(context); string severityValidationResult = AiTrace.ValidateSeverityValue(severity); if (!string.IsNullOrEmpty(severityValidationResult)) { localContext.TracingService.Trace(severityValidationResult); LogSuccess.Set(context, false); return; } Enum.TryParse(severity, out AiTraceSeverity traceSeverity); bool logSuccess = aiLogger.WriteTrace(message, traceSeverity); LogSuccess.Set(context, logSuccess); }
public void TraceTest() { AiSetup aiSetup = Configs.GetAiSetup(false, false, false, false, false, false, true); string secureConfig = SerializationHelper.SerializeObject <AiSetup>(aiSetup); XrmFakedTracingService fakedTracingService = new XrmFakedTracingService(); XrmFakedContext context = new XrmFakedContext(); IOrganizationService fakedService = context.GetOrganizationService(); XrmFakedPluginExecutionContext xrmFakedPluginExecution = new XrmFakedPluginExecutionContext(); Guid userId = Guid.Parse("9e7ec57b-3a08-4a41-a4d4-354d66f19b65"); xrmFakedPluginExecution.InitiatingUserId = userId; xrmFakedPluginExecution.UserId = userId; xrmFakedPluginExecution.CorrelationId = Guid.Parse("15cc775b-9ebc-48d1-93a6-b0ce9c920b66"); xrmFakedPluginExecution.PrimaryEntityName = "account"; xrmFakedPluginExecution.PrimaryEntityId = Guid.Parse("f14c4d40-96e9-40a5-95b7-4028af9605de"); xrmFakedPluginExecution.MessageName = "Update"; xrmFakedPluginExecution.Mode = 1; xrmFakedPluginExecution.Depth = 1; xrmFakedPluginExecution.OrganizationName = "test.crm.dynamics.com"; xrmFakedPluginExecution.Stage = 40; xrmFakedPluginExecution.OperationCreatedOn = DateTime.Now; xrmFakedPluginExecution.InputParameters = new ParameterCollection { new System.Collections.Generic.KeyValuePair <string, object>("InputParam1", "test"), new System.Collections.Generic.KeyValuePair <string, object>("InputParam2", 34) }; xrmFakedPluginExecution.OutputParameters = new ParameterCollection { new System.Collections.Generic.KeyValuePair <string, object>("OutputParam1", "test"), new System.Collections.Generic.KeyValuePair <string, object>("OutputParam2", 34) }; AiLogger aiLogger = new AiLogger(secureConfig, fakedService, fakedTracingService, xrmFakedPluginExecution, xrmFakedPluginExecution.Stage, null); bool result = aiLogger.WriteTrace("Hello from TraceTest - 0", AiTraceSeverity.Information); Assert.IsTrue(result); }