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); }
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); }