public void DependencyTest() { 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; AiLogger aiLogger = new AiLogger(secureConfig, fakedService, fakedTracingService, xrmFakedPluginExecution, xrmFakedPluginExecution.Stage, null); bool result = aiLogger.WriteDependency("https://www.test1.com/test/123", "GET", "HTTP", 2346, 200, true, "Hello from DependencyTest - 0"); Assert.IsTrue(result); }
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 name = Name.Get(context); string method = Method.Get(context); string type = Type.Get(context); int duration = Duration.Get(context); int? resultCode = ResultCode.Get(context); bool success = Success.Get(context); string data = Data.Get(context); bool logSuccess = aiLogger.WriteDependency(name, method, type, duration, resultCode, success, data); LogSuccess.Set(context, logSuccess); }
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 name = ActionHelpers.GetInputValue <string>("name", localContext.PluginExecutionContext, localContext.TracingService); string method = ActionHelpers.GetInputValue <string>("method", localContext.PluginExecutionContext, localContext.TracingService); string typeInput = ActionHelpers.GetInputValue <string>("type", localContext.PluginExecutionContext, localContext.TracingService); int? duration = ActionHelpers.GetInputValue <int?>("duration", localContext.PluginExecutionContext, localContext.TracingService); int? resultcode = ActionHelpers.GetInputValue <int?>("resultcode", localContext.PluginExecutionContext, localContext.TracingService); bool? success = ActionHelpers.GetInputValue <bool?>("success", localContext.PluginExecutionContext, localContext.TracingService); string data = ActionHelpers.GetInputValue <string>("data", localContext.PluginExecutionContext, localContext.TracingService); if (string.IsNullOrEmpty(name) || duration == null || string.IsNullOrEmpty(typeInput) || success == null) { string errorMessage; if (string.IsNullOrEmpty(name)) { errorMessage = "Name must be populated"; } else if (duration == null) { errorMessage = "Duration must be populated"; } else if (string.IsNullOrEmpty(typeInput)) { errorMessage = "Type must be populated"; } else { errorMessage = "Success must be populated"; } localContext.TracingService.Trace(errorMessage); ActionHelpers.SetOutputParameters(localContext.PluginExecutionContext.OutputParameters, false, errorMessage); return; } bool result = aiLogger.WriteDependency(name, method, typeInput, (int)duration, resultcode, (bool)success, data); ActionHelpers.SetOutputParameters(localContext.PluginExecutionContext.OutputParameters, result, null); } catch (Exception e) { localContext.TracingService.Trace($"Unhandled Exception: {e.Message}"); ActionHelpers.SetOutputParameters(localContext.PluginExecutionContext.OutputParameters, false, e.Message); } }