Ejemplo n.º 1
0
        public override Task <FormatResponse> Format(FormatRequest request, ServerCallContext context)
        {
            _logger.LogInformation("Begin call from method {method} for filename {filename}", context.Method, request.FileName);

            return(Task.FromResult(new FormatResponse {
                Message = "Hello " + request.FileName
            }));
        }
Ejemplo n.º 2
0
        public async Task InvokeAsync(HttpContext httpContext, IMapper _mapper, IAPIErrorLogService _APIErrorLogService)
        {
            var apiLogRequest = new APILogRequest();

            //Copy a pointer to the original response body stream
            var originalBodyStream = httpContext.Response.Body;

            try
            {
                using (var responseBodyStream = new MemoryStream())
                {
                    if (AppSettingConfigurations.AppSettings.EnableAPILog)
                    {
                        httpContext.Request.EnableBuffering();
                        //First, get the incoming request
                        apiLogRequest.APIParams = await FormatRequest.FormatRequestBody(httpContext.Request);

                        httpContext.Request.Body.Seek(0, SeekOrigin.Begin);

                        //Read API URL
                        apiLogRequest.APIUrl = httpContext.Request.Scheme + "://" + httpContext.Request.Host + httpContext.Request.Path;

                        //Read Authorization Header
                        apiLogRequest.Headers = httpContext.Request.Headers["Authorization"];

                        // Read Method
                        apiLogRequest.Method = httpContext.Request.Method;
                        APILoggedId          = await _APIErrorLogService.InserAPILogToDB(apiLogRequest);
                    }

                    httpContext.Response.Body = responseBodyStream;
                    long length = 0;
                    httpContext.Response.OnStarting(() =>
                    {
                        httpContext.Response.Headers.ContentLength = length;
                        return(Task.CompletedTask);
                    });
                    await _next(httpContext);

                    length = httpContext.Response.Body.Length;
                    //Format the response from the server
                    var response = FormatResponse(httpContext.Response, httpContext);

                    //Copy the contents of the new memory stream (which contains the response) to the original stream, which is then returned to the client.
                    await responseBodyStream.CopyToAsync(originalBodyStream);

                    await _APIErrorLogService.UpdateAPILogToDB(new UpdateAPILogRequest()
                    {
                        APILogId = APILoggedId, Success = true
                    });
                }
            }
            catch (Exception ex)
            {
                httpContext.Response.Body = originalBodyStream;
                await HandleExceptionAsync(httpContext, ex, apiLogRequest, _APIErrorLogService, _mapper);
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Format([FromBody] FormatRequest request)
        {
            if (request.IndentWidth <= 0)
            {
                request.IndentWidth = 2;
            }

            request.Parameter = request.Parameter.Where(p => !string.IsNullOrWhiteSpace(p.Value)).ToArray();

            var formattedSqlQuery = request.SqlQuery;

            foreach (var charToRemove in request.CharsToRemove.Where(c => !string.IsNullOrWhiteSpace(c)))
            {
                formattedSqlQuery = formattedSqlQuery.Replace(charToRemove, "");
            }

            foreach (var parameter in request.Parameter.OrderByDescending(p => p.Name.Length).ToList())
            {
                formattedSqlQuery = formattedSqlQuery.Replace(parameter.Name, parameter.Value);
            }

            var payloadData = new Dictionary <string, string>
            {
                { "reindent", Convert.ToInt32(request.Reindent).ToString() },
                { "indent_width", request.IndentWidth.ToString() },
                { "sql", formattedSqlQuery },
                { "strip_comments", Convert.ToInt32(request.StripComments).ToString() }
            };

            if (request.IdentifierCase != Casing.Default)
            {
                payloadData.Add("identifier_case", request.IdentifierCase.ToString().ToLower());
            }

            if (request.KeywordCase != Casing.Default)
            {
                payloadData.Add("keyword_case", request.KeywordCase.ToString().ToLower());
            }

            var httpClient = _clientFactory.CreateClient();
            var payload    = new FormUrlEncodedContent(payloadData);

            var response =
                await httpClient.PostAsync("https://sqlformat.org/api/v1/format", payload);

            if (!response.IsSuccessStatusCode)
            {
                return(BadRequest());
            }

            var content = await response.Content.ReadAsStringAsync();

            var result = JsonConvert.DeserializeObject <FormatResponse>(content).Result;

            return(Ok(new { sql = result }));
        }
Ejemplo n.º 4
0
        public ActionResult Format([FromBody] FormatRequest request)
        {
            if (request == null)
            {
                return(Content("Invalid Input parameters."));
            }

            if (string.IsNullOrWhiteSpace(request.InputText))
            {
                return(Content("Input your text."));
            }

            var splittedSentences = _formatter.Format(request.InputText);
            var genericFormatter  = new GenericFormatter();
            var formatter         = genericFormatter.Create((FormatType)request.FormatType);

            return(Content(formatter.Format(splittedSentences)));
        }