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); } }
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) })); } }
public async Task <IActionResult> CreateBot([FromBody] ScriptToValidateDto script) { var validationResult = await _scriptValidationHelper.Validate(script); return(Ok(validationResult)); }