Ejemplo n.º 1
0
        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 measurementName  = ActionHelpers.GetInputValue <string>("measurementname", localContext.PluginExecutionContext, localContext.TracingService);
                float? measurementValue = ActionHelpers.GetFloatInput("measurementvalue", localContext.PluginExecutionContext, localContext.TracingService);

                if (string.IsNullOrEmpty(name))
                {
                    localContext.TracingService.Trace("Name must be populated");
                    ActionHelpers.SetOutputParameters(localContext.PluginExecutionContext.OutputParameters, false, "Name must be populated");
                    return;
                }

                string measurementNameValidationResult = AiEvent.ValidateMeasurementName(measurementName);
                if (!string.IsNullOrEmpty(measurementNameValidationResult))
                {
                    localContext.TracingService.Trace(measurementNameValidationResult);
                    ActionHelpers.SetOutputParameters(localContext.PluginExecutionContext.OutputParameters, false, measurementNameValidationResult);
                    return;
                }

                Dictionary <string, double> measurements =
                    new Dictionary <string, double> {
                    { measurementName, Convert.ToDouble(measurementValue) }
                };

                bool result = aiLogger.WriteEvent(name, measurements);

                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);
            }
        }
Ejemplo n.º 2
0
        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 measurementName  = MeasurementName.Get(context);
            double measurementValue = MeasurementValue.Get(context);

            string measurementNameValidationResult = AiEvent.ValidateMeasurementName(measurementName);

            if (!string.IsNullOrEmpty(measurementNameValidationResult))
            {
                localContext.TracingService.Trace(measurementNameValidationResult);
                LogSuccess.Set(context, false);
                return;
            }

            Dictionary <string, double> measurements =
                new Dictionary <string, double> {
                { measurementName, Convert.ToDouble(measurementValue) }
            };

            bool logSuccess = aiLogger.WriteEvent(name, measurements);

            LogSuccess.Set(context, logSuccess);
        }
Ejemplo n.º 3
0
		/// <summary>
		/// Reigsters a reaction.
		/// </summary>
		/// <param name="ev">The event on which func should be executed.</param>
		/// <param name="func">The reaction to the event.</param>
		protected void On(AiState state, AiEvent ev, Func<IEnumerable> func)
		{
			lock (_reactions)
				_reactions[state][ev] = func;
		}
Ejemplo n.º 4
0
 /// <summary>
 /// Reigsters a reaction.
 /// </summary>
 /// <param name="ev">The event on which func should be executed.</param>
 /// <param name="func">The reaction to the event.</param>
 protected void On(AiState state, AiEvent ev, Func <IEnumerable> func)
 {
     lock (_reactions)
         _reactions[state][ev] = func;
 }