public async Task <string> Gen(CodeClass selectedClass, GenOptions opts) { _opts = opts; _genner = new ClassGenerator(_parts, _opts, _dte); if (_debugMode == true) { ParseFunctions(selectedClass); return(PutItAllTogether()); } else { return(await Task.Run(() => { ParseFunctions(selectedClass); return PutItAllTogether(); })); } }
public string GenerateFunctionParamForClassInput(CodeTypeRef codeTypeRef) { var strippedCodeTypeRef = StripGenerics(codeTypeRef); var fullName = strippedCodeTypeRef.AsFullName.Replace("?", ""); var name = strippedCodeTypeRef.CodeType.Name.Replace("?", ""); if (ClassGenerator.IsCodeTypeAList(name)) { var baseType = TryToGuessGenericArgument(codeTypeRef); if (baseType == null) { return(null); } name = baseType.CodeType.Name + "List"; fullName = strippedCodeTypeRef.AsFullName.Replace("?", ""); } var exists = _parts.ParamsGenerated.FirstOrDefault(x => x.FullName == fullName); if (exists != null) { return(exists.GetFunctionName); //do not add a 2nd one } var functionName = string.Format("Get{0}", name); //if (functionName == "GetList") // { // var asdasdsad = 55; // } //_parts.ParamsGenerated keeps a list of functions that will get the value of the object we generated _parts.ParamsGenerated.Add(new ParamsGenerated() { FullName = fullName, GetFunctionName = functionName }); string innerCode; if (functionName == "GetTask") { innerCode = "new Task()"; } else { innerCode = GetParamValue(codeTypeRef, string.Empty, 3); } if (innerCode.Contains("Task")) { var asdasd = 444; } var gen = string.Format(@" private static {0} {1}() {{ return {2}; }} ", fullName, functionName, innerCode); _parts.ParamInputs += gen; return(functionName); }