Пример #1
0
        public void Execute(LocalPluginContext localcontext)
        {
            var service          = localcontext.OrganizationService;
            var inputparameters  = localcontext.PluginExecutionContext.InputParameters;
            var outputparameters = localcontext.PluginExecutionContext.OutputParameters;

            var xrmcontext = new XrmContext(service);

            var key = inputparameters["Key"] as string;



            //default values
            outputparameters["Exists"]      = false;
            outputparameters["ValueString"] = string.Empty;


            var definition = xrmcontext.GetEnvironmentVariableDefinition(key);

            if (definition != null)
            {
                outputparameters["Exists"] = true;

                var overridenvalue = xrmcontext.GetEnvironmentVariableValue(definition);
                outputparameters["ValueString"] = overridenvalue != null ?
                                                  overridenvalue.Value :
                                                  definition.DefaultValue;


                outputparameters["Type"]     = new OptionSetValue((int)definition.Type);
                outputparameters["TypeName"] = service.GetOptionsetText(EnvironmentVariableDefinition.EntityLogicalName, "type", (int)definition.Type);

                switch (definition.Type)
                {
                case environmentvariabledefinition_type.Boolean:

                    outputparameters["ValueBool"] = overridenvalue != null ?
                                                    overridenvalue.Value == "yes" :
                                                    definition.DefaultValue == "yes";
                    break;

                case environmentvariabledefinition_type.Number:
                    outputparameters["ValueDecimal"] = overridenvalue != null?
                                                       decimal.Parse(overridenvalue.Value) :
                                                           decimal.Parse(definition.DefaultValue);

                    break;

                case environmentvariabledefinition_type.Secret:
                    var secretresponse = service.GetEnvironmentVariableSecretValue(key);
                    outputparameters["ValueSecret"] = secretresponse.EnvironmentVariableSecretValue;

                    break;
                }
            }
        }