public void should_not_be_using_service_provider() { var container = new Container(x => { x.AddDbContext <InputDbContext>(builder => { builder.UseSqlServer("some connection string"); }, optionsLifetime: ServiceLifetime.Singleton); }); var rules = new GenerationRules(); var source = container.CreateServiceVariableSource(); var assembly = new GeneratedAssembly(rules); var handler = assembly.AddType("SpecialHandler", typeof(Handler)); var handleMethod = handler.MethodFor(nameof(Handler.Handle)); var save = MethodCall.For <InputDbContext>(x => x.Add <Input>(null)); handleMethod.Frames.Add(save); var code = assembly.GenerateCode(source); code.ShouldNotContain("ServiceProvider"); }
public void write_header_and_footer_2() { var assembly = new GeneratedAssembly(new GenerationRules("LamarCompiler.Generated")); assembly.Header = ConditionalCompilation.If("NET"); assembly.Footer = ConditionalCompilation.EndIf(); var code = assembly.GenerateCode().ReadLines().ToArray(); code[0].ShouldBe("#if NET"); code.Last().ShouldBe("#endif"); }
public void write_header_and_footer() { var assembly = new GeneratedAssembly(new GenerationRules("LamarCompiler.Generated")); assembly.Header = new OneLineComment("Start here."); assembly.Footer = new OneLineComment("End here."); var code = assembly.GenerateCode().ReadLines().ToArray(); code[0].ShouldBe("// Start here."); code.Last().ShouldBe("// End here."); }
public string SourceCodeForCompiledQuery(Type type) { if (!type.Closes(typeof(ICompiledQuery <,>))) { throw new ArgumentOutOfRangeException(nameof(type), "Not a compiled query type"); } var assembly = new GeneratedAssembly(new GenerationRules(SchemaConstants.MartenGeneratedNamespace)); using var session = _store.LightweightSession(); var plan = QueryCompiler.BuildPlan((IMartenSession)session, type, _store.Options); var builder = new CompiledQuerySourceBuilder(plan, _store.Options); var(sourceType, handlerType) = builder.AssemblyType(assembly); return(assembly.GenerateCode()); }
public override bool Execute(CodeInput input) { Console.WriteLine("Generating a preview of the generated code, this might take a bit..."); Console.WriteLine(); Console.WriteLine(); var runtime = input.BuildHost(StartMode.Lightweight); var rules = runtime.Get <JasperGenerationRules>(); var generatedAssembly = new GeneratedAssembly(rules); if (input.Match == CodeMatch.all || input.Match == CodeMatch.messages) { var handlers = runtime.Get <HandlerGraph>(); foreach (var handler in handlers.Chains) { handler.AssembleType(generatedAssembly, rules); } } if (input.Match == CodeMatch.all || input.Match == CodeMatch.routes) { var connegRules = runtime.Get <ConnegRules>(); var routes = runtime.Get <RouteGraph>(); foreach (var route in routes) { route.AssemblyType(generatedAssembly, connegRules, rules); } } var text = generatedAssembly.GenerateCode(runtime.Container.CreateServiceVariableSource()); Console.WriteLine(text); if (input.FileFlag.IsNotEmpty()) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Writing file {input.FileFlag.ToFullPath()}"); new FileSystem().WriteStringToFile(input.FileFlag, text); } return(true); }
public string GenerateCodeWithInlineServices(GeneratedAssembly assembly) { return(assembly.GenerateCode(new ServiceVariableSource(ServiceGraph))); }
public string GenerateCodeWithInlineServices(GeneratedAssembly assembly) { return(assembly.GenerateCode(ServiceGraph)); }