Exemple #1
0
        public async Task <ValidatedScriptDto> Validate(ScriptToValidateDto script)
        {
            try
            {
                var request = new ScriptValidationRequest {
                    Script = script.Script
                };

                var validationHost = _configurationHelper.ValidationHost;
                var channel        = GrpcChannel.ForAddress(validationHost);
                var client         = new ScriptValidator.ScriptValidatorClient(channel);
                var response       = await client.ValidateAsync(request);

                return(new ValidatedScriptDto
                {
                    Script = script.Script,
                    CompilationTimeInMilliseconds = response.CompilationTimeInMilliseconds,
                    RunTimeInMilliseconds = response.RunTimeInMilliseconds,
                    Messages = new List <ScriptValidationMessage>(response.ValidationMessages.Select(x => new ScriptValidationMessage
                    {
                        Message = x.Message,
                        LocationStart = x.LocationStart,
                        LocationEnd = x.LocationEnd
                    }))
                });
            }
            catch
            {
                return(null);
            }
        }
        public async Task <ValidatedScriptDto> Validate(ScriptToValidateDto script)
        {
            try
            {
                var request = new ScriptValidationRequest {
                    Script = script.Script
                };

                AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
                var validationHost = _configurationHelper.ValidationHost;
                var channel        = GrpcChannel.ForAddress(validationHost);
                var client         = new ScriptValidator.ScriptValidatorClient(channel);
                var response       = await client.ValidateAsync(request);

                return(new ValidatedScriptDto
                {
                    Script = script.Script,
                    CompilationTimeInMilliseconds = response.CompilationTimeInMilliseconds,
                    RunTimeInMilliseconds = response.RunTimeInMilliseconds,
                    Messages = new List <ScriptValidationMessage>(response.ValidationMessages.Select(x => new ScriptValidationMessage
                    {
                        Message = x.Message,
                        LocationStart = x.LocationStart,
                        LocationEnd = x.LocationEnd
                    }))
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"ValidationHost: {_configurationHelper.ValidationHost}, Exception: {ex.Message}");
                return(null);
            }
        }
        public async Task <ValidatedScriptDto> Validate(ScriptToValidateDto script)
        {
            try
            {
                var validationClient  = new RestClient(_configurationHelper.ValidationHost);
                var validationRequest = new RestRequest("api/validation", Method.POST);
                validationRequest.AddJsonBody(script);
                var validationResponse = await validationClient.ExecuteTaskAsync <ValidatedScriptDto>(validationRequest);

                if (validationResponse.IsSuccessful)
                {
                    return(validationResponse.Data);
                }

                return(null);
            }
            catch
            {
                return(null);
            }
        }
Exemple #4
0
    public async Task <ValidatedScriptDto> Validate(ScriptToValidateDto script)
    {
        try
        {
            var request = new ScriptValidationRequest {
                Script = script.Script
            };

            var validationHost = _configurationHelper.ValidationHost;
            var channel        = GrpcChannel.ForAddress(validationHost);
            var client         = new ScriptValidator.ScriptValidatorClient(channel);
            var response       = await client.ValidateAsync(request);

            return(new ValidatedScriptDto(script.Script, response.CompilationTimeInMilliseconds, response.RunTimeInMilliseconds,
                                          new List <ScriptValidationMessage>(response.ValidationMessages.Select(x => new ScriptValidationMessage(x.Message, x.LocationStart, x.LocationEnd)))
                                          ));
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, ex.Message);
            return(new ValidatedScriptDto(script.Script, 0, 0, new() { new(ex.Message, 0, 0) }));
        }
    }
Exemple #5
0
        public async Task <IActionResult> CreateBot([FromBody] ScriptToValidateDto script)
        {
            var validationResult = await _scriptValidationHelper.Validate(script);

            return(Ok(validationResult));
        }