コード例 #1
0
        public override async Task <ValidateDataSourceConfig.Types.Response> ValidateDataSourceConfig(
            ValidateDataSourceConfig.Types.Request request, ServerCallContext context)
        {
            var response = new ValidateDataSourceConfig.Types.Response();

            var providerType = _schemaResolver.PluginDetails.Provider;
            var resType      = _schemaResolver.GetDataSourceSchemas()[request.TypeName].Type;

            if (providerType.HasValidateDataSourceConfigSkill(resType))
            {
                providerType.InvokeValidateDataSourceConfigSkill(
                    PluginProviderInstance,
                    resType,
                    writeInput: (inputType, input) => {
                    inputType.GetProperty(nameof(request.Config)).SetValue(input,
                                                                           request.Config.UnmarshalFromDynamicValue(resType));
                },
                    readResult: (resultType, result) => {
                    var diagnostics = ((TFDiagnostics)resultType
                                       .GetProperty(nameof(response.Diagnostics))
                                       .GetValue(result));
                    if (diagnostics.Count() > 0)
                    {
                        response.Diagnostics.Add(diagnostics.All());
                    }
                });
            }

            return(await Task.FromResult(response));
        }
コード例 #2
0
 public override Task <ValidateDataSourceConfig.Types.Response> ValidateDataSourceConfig(ValidateDataSourceConfig.Types.Request request, ServerCallContext context)
 {
     return(Task.FromResult(new ValidateDataSourceConfig.Types.Response()));
 }