Beispiel #1
0
        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";
        }
Beispiel #2
0
        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);
        }