static void Main(string[] args) { const string source = @" let id = Guid Id; Security (id, string path) let security = Security Security; let name = string Name; let rank = int Rank; let parent = Guid ParentId; DeleteContext ?(id) ContextDeleted !(id) CreateContext ?(id, name, rank) ContextCreated !(id, name, rank)"; var generator = new TemplatedGenerator() { }; Console.WriteLine(GeneratorUtil.Build(source, generator)); Console.ReadLine(); }
public void Test() { var generator = new TemplatedGenerator() { Namespace = "Mine" }; var dsl = @" let name = string Name; let security = SecurityDetails Security; let auth = SecurityRequest Request; entity ProjectAggregate (Guid ProjectId); using ? = CommandTo<ProjectId>; using ! = EventFrom<ProjectId>; // projects CreateProject? (name, int Rank, auth) ProjectCreated! (name, int Rank, security) RenameProject? (name, auth) ProjectRenamed! (name, security) DeleteProject? (auth) ProjectDeleted! (ref DeleteProject) entity null (); DoSomething (name) "; var ctx = GeneratorUtil.GenerateContext(dsl); Console.WriteLine(GeneratorUtil.Build(ctx, generator)); }
static void Rebuild(string text, string fullPath) { var dsl = text; var generator = new TemplatedGenerator() { Namespace = "Sample", GenerateInterfaceForEntityWithModifiers = "?", TemplateForInterfaceName = "public interface I{0}Aggregate", TemplateForInterfaceMember = "void When({0} c);", ClassNameTemplate = @" [DataContract(Namespace = ""Sample"")] public partial class {0}", MemberTemplate = "[DataMember(Order = {0})] public {1} {2} {{ get; private set; }}", }; var prefix = @" using System; using System.Collections.Generic; using System.Runtime.Serialization; "; File.WriteAllText(Path.ChangeExtension(fullPath, "cs"), prefix + GeneratorUtil.Build(dsl, generator)); }