public TemplateOpt(QuestionDetail detail) { _detail = detail; _csharpCode = BuilderCSharpCodeModel(detail.CSharpCodeTxt); dynamic cmd = new Cmd(); _author = cmd.git.config(get: "user.name"); _algorithmsPath = $"../../Algorithms/{_detail.QuestionName}.cs"; _algorithmsTestPath = $"../../AlgorithmsTest/{_detail.QuestionName}Test.cs"; }
private CSharpCode BuilderCSharpCodeModel(string chsarpCodeTxt) { var pattern = @"(?s)\bSolution\b\s\{(.*?)\{"; var match = Regex.Matches(chsarpCodeTxt, pattern).FirstOrDefault(); var csharp = new CSharpCode(); if (match != null) { var methodDeclare = match.Groups[1].Value.Trim(); csharp.MethodName = methodDeclare.Split(' ')[2].Substring(0, methodDeclare.Split(' ')[2].IndexOf('(')); csharp.ReturnType = methodDeclare.Split(' ')[1]; csharp.ParamsTxt = methodDeclare.Substring(methodDeclare.IndexOf('(') + 1, methodDeclare.IndexOf(')') - methodDeclare.IndexOf('(') - 1); csharp.Params = csharp.ParamsTxt.Split(',', StringSplitOptions.RemoveEmptyEntries) .Select(x => new TypeName { type = x.Split(' ')[0], name = x.Split(' ')[1] }) .ToList(); } return(csharp); }