private void GeneratedStatementFile( GeneratedStatement generatedStatement ) { // Get Path/File var namespaceToPath = Path.Combine( generatedStatement.ClassStatement.Namespace.Split( '.' ).Skip(1).ToArray() ); var namepacePath = Path.Combine( _projectDirectory, namespaceToPath ); var filePath = Path.Combine( namepacePath, $"{generatedStatement.ClassStatement.Name}.cs" ); if (!Directory.Exists( namepacePath )) { Directory.CreateDirectory( namepacePath ); } File.WriteAllText( filePath, CleanupGeneratedStatementString( generatedStatement ) ); }
private string CleanupGeneratedStatementString( GeneratedStatement generatedStatement ) { return(generatedStatement.GeneratedString.Replace( "ValueTask<void>", "ValueTask" ).Replace( "ValueTask<ValueTask>", "ValueTask" ).Replace( "await await", "await" ).Replace( "Task<void>", "CachedEntity" ).Replace( "ValueTask<Task<void>>", "ValueTask" ).Replace( "set_@", "set_" ).Replace( "get_@", "get_" ).Replace( "[[CLASS_GENERICS]]", BuildClassGenerics( generatedStatement ) )); }
private static string BuildClassGenerics( GeneratedStatement generatedStatement ) { var template = "<[[TYPE]]>"; if (!generatedStatement.ClassStatement.GenericTypes.Any()) { return(string.Empty); } return(template.Replace( "[[TYPE]]", string.Join( ", ", generatedStatement.ClassStatement.GenericTypes.Select( genericType => TypeStatementWriter.Write( genericType ) ) ) )); }