Exemplo n.º 1
0
        public ResponseDto <string> ParserSQL([FromBody] RequestStringModel request)
        {
            var input = request.Input;
            ResponseDto <string> responsedto = new ResponseDto <string>();
            var           response           = GetStringSingleColumn(input);
            StringBuilder sb = new StringBuilder();


            List <string> result = new List <string>();

            foreach (var item in response)
            {
                if (item.IndexOf('+') > 0 && item.Trim().Length > 1)
                {
                    result.Add(item);
                }
                sb.AppendLine(item);
            }
            var           lastresul = string.Empty;
            List <String> gencol    = new List <string>();

            for (int i = 0; i < result.Count; i++)
            {
                var columnname = GetColumn(result[i]).Where(x => x.IndexOf("(") == -1).LastOrDefault();
                gencol.Add(columnname);
                if (i + 1 == result.Count)
                {
                    input = input.Replace("'\"" + result[i] + "\"'", "@" + columnname);
                    input = input.Replace("\"" + result[i], "@" + columnname + "\"");
                }

                else
                {
                    input = input.Replace("'\"" + result[i] + "\"'", "@" + columnname);
                    input = input.Replace("\"" + result[i] + "\"", "@" + columnname);
                }
            }

            StringBuilder sbs = new StringBuilder();

            sbs.AppendLine(input);

            sbs.AppendLine(GeneratorParams(result));

            responsedto.Data = sbs.ToString();
            return(responsedto);
        }
Exemplo n.º 2
0
        public ResponseDto <string> ParserSQLFormat([FromBody] RequestStringModel request)
        {
            ResponseDto <string> responsedto = new ResponseDto <string>();

            var           formst    = request.Input;
            var           lastindex = formst.LastIndexOf('"') + 2;
            StringBuilder sb        = new StringBuilder();

            var             splitarr = GetFormat(formst.Substring(lastindex)).ToList().Where(x => !string.IsNullOrEmpty(x)).ToList();
            string          p        = "('*{\\s*([\\d]+)\\s*}'*)";
            MatchCollection col      = Regex.Matches(formst, p);

            var stringresult = formst.Substring(0, lastindex - 1) + ";";

            if (splitarr.Count == col.Count)
            {
                int i = 0;
                foreach (Match item in col)
                {
                    var s = item.Value;

                    var value      = splitarr[i].ToStringExtension().Trim();
                    var columnname = GetColumn(value).Where(x => x.IndexOf("(") == -1).LastOrDefault();
                    stringresult = stringresult.Replace(s, "@" + columnname);
                    i++;
                }

                stringresult = Regex.Replace(stringresult, "String.Format\\s*\\(\\s*@\\s*", "", RegexOptions.IgnoreCase);


                sb.AppendLine(stringresult);
                sb.AppendLine(GeneratorParams(splitarr));

                responsedto.Data = sb.ToString();
            }


            return(responsedto);
        }