public void BuildDomainEventBaseClass() { var classFactory = new ClassBuilderDirector(); var baseClass = classFactory.BuildInstance(new DomainEventBaseClassBuilder(new DomainEventBaseClass())); TestUtils.SnapshotTest(baseClass); }
public void BuildEventStoreRepository() { var classFactory = new ClassBuilderDirector(); var buildInstance = classFactory.BuildInstance(new EventStoreRepositoryBuilder(new EventStoreRepository())); TestUtils.SnapshotTest(buildInstance); }
public void BuildValidationResult() { var director = new ClassBuilderDirector(); var validationResult = director.BuildInstance(new ValidationResultBaseClassBuilder(new ValidationResultBaseClass())); TestUtils.SnapshotTest(validationResult); }
public void Write(DomainTree domainTree) { foreach (var domainClass in domainTree.Classes) { var repo = _repositoryBuilder.Build(domainClass); _fileWriter.WriteToFile($"{domainClass.Name}s", repo); } var dbContext = _eventStoreContextBuilder.Build(domainTree.Classes.ToList()); _fileWriter.WriteToFile("Base", dbContext); var hangfireContext = _hangfireContextBuilder.Build(domainTree.Classes.ToList()); _fileWriter.WriteToFile("Base", hangfireContext); var eventStoreRepo = _classBuilderDirector.BuildInstance(new EventStoreRepositoryBuilder(new EventStoreRepository())); _fileWriter.WriteToFile("Base", eventStoreRepo); var eventTuple = _classBuilderDirector.BuildInstance(new DefaultClassBuilder(_sqlAdapterNameSpace, new EventTupleClass())); _fileWriter.WriteToFile("Base", eventTuple); var eventJobRegistration = _eventJobRegistrationClassBuilder.Build(domainTree.AsyncDomainHooks); _fileWriter.WriteToFile("Base", eventJobRegistration); var hangfireQueue = _hangfireQueueBuilder.Build(new HangfireQueueClass()); _fileWriter.WriteToFile("Base", hangfireQueue); var queueRepo = _queueRepositoryBuilder.Build(new QueueRepositoryClass()); _fileWriter.WriteToFile("Base", queueRepo); new PrivateSetPropertyHackCleaner().ReplaceHackPropertyNames(_basePath); }
public void Write(DomainTree domainTree, string basePath) { foreach (var domainClass in domainTree.Classes) { foreach (var domainEvent in domainClass.Events) { var domainEventClass = _classBuilderDirector.BuildInstance(new DomainEventBuilder(domainClass, domainEvent)); _fileWriter.WriteToFile($"{domainClass.Name}s", domainEventClass); } var domainClassBuild = _classBuilderDirector.BuildInstance(new DomainClassBuilder(domainClass)); _fileWriter.WriteToFile($"{domainClass.Name}s", domainClassBuild); var domainClassFirst = _classBuilderDirector.BuildInstance(new DomainClassFirstBuilder(domainClass)); if (!ClassIsAllreadyExisting(domainClass)) { _fileWriterOneTime.WriteToFile("", domainClassFirst, false); } var commands = _commandBuilder.Build(domainClass); foreach (var command in commands) { _fileWriter.WriteToFile($"{domainClass.Name}s/Commands", command); } } var validationResult = _classBuilderDirector.BuildInstance(new ValidationResultBaseClassBuilder(new ValidationResultBaseClass())); _fileWriter.WriteToFile("Base", validationResult); var codeNamespace = _classBuilderDirector.BuildInstance(new CreationResultBaseClassBuilder(new CreationResultBaseClass())); _fileWriter.WriteToFile("Base", codeNamespace); var domainEventBaseClass = _classBuilderDirector.BuildInstance(new DomainEventBaseClassBuilder(new DomainEventBaseClass())); _fileWriter.WriteToFile("Base", domainEventBaseClass); new PrivateSetPropertyHackCleaner().ReplaceHackPropertyNames(basePath); }
public void Write(DomainTree domainTree) { foreach (var domainClass in domainTree.Classes) { var commandHandler = _commandHandlerBuilder.Build(domainClass); _fileWriter.WriteToFile($"{domainClass.Name}s", commandHandler); var iRepository = _repositoryInterfaceBuilder.Build(domainClass); _fileWriter.WriteToFile($"{domainClass.Name}s", iRepository); foreach (var loadMethod in domainClass.LoadMethods) { var apiCommand = _apiCommandBuilder.Build(loadMethod, domainClass); _fileWriter.WriteToFile($"{domainClass.Name}s", apiCommand); } foreach (var hook in domainClass.ChildHookMethods) { var createdHook = _synchronousHookBuilder.BuildOnChildHook(hook, domainClass.Properties, domainClass.ListProperties); _fileWriter.WriteToFile($"{hook.ContainingClassName}s/Hooks/", createdHook); } } foreach (var hook in domainTree.SynchronousDomainHooks) { var createdHook = _synchronousHookBuilder.Build(hook); _fileWriter.WriteToFile($"{hook.ClassType}s/Hooks/", createdHook); var formattableString = $"{_applicationBasePathRealClasses}{hook.ClassType}s/Hooks/{hook.Name}Hook.cs"; if (!File.Exists(formattableString)) { var buildReplacementClass = _synchronousHookBuilder.BuildReplacementClass(hook); _fileWriterRealClasses.WriteToFile($"{hook.ClassType}s/Hooks", buildReplacementClass, false); } } foreach (var hook in domainTree.AsyncDomainHooks) { var createdHookEventHandler = _asyncHookCreateEventHandlerBuilder.Build(hook); _fileWriter.WriteToFile($"{hook.ClassType}s/AsyncHooks/", createdHookEventHandler); var formattableString = $"{_applicationBasePathRealClasses}{hook.ClassType}s/AsyncHooks/{_nameBuilderUtil.AsyncEventHookName(hook)}.cs"; if (!File.Exists(formattableString)) { var buildReplacementClass = _classBuilderDirector.BuildInstance(new AsyncHookBuilder(hook)); _fileWriterRealClasses.WriteToFile($"{hook.ClassType}s/AsyncHooks", buildReplacementClass, false); } } var hookResult = _hookResultBuilder.Build(new HookResultBaseClass()); _fileWriter.WriteToFile("Base", hookResult); var hookBase = _hookBaseClassBuilder.Build(new DomainHookBaseClass()); _fileWriter.WriteToFile("Base", hookBase); var eventStoreRepoInterface = _eventStoreRepositoryInterfaceBuilder.Build(new EventStoreRepositoryInterface()); _fileWriter.WriteToFile("Base", eventStoreRepoInterface); var eventStore = _eventStoreBuilder.Build(new EventStore()); _fileWriter.WriteToFile("Base", eventStore); var eventStoreInterface = _eventStoreInterfaceBuilder.Build(new EventStoreInterface()); _fileWriter.WriteToFile("Base", eventStoreInterface); var hangfireQueue = _hangfireQueueInterfaceBuilder.Build(new HangfireQueueInterface()); _fileWriter.WriteToFile("Base", hangfireQueue); var jobAndEventClass = _eventAndJobClassBuilder.Build(new EventAndJobClass()); _fileWriter.WriteToFile("Base", jobAndEventClass); var queueRepo = _queueRepositoryInterfaceBuilder.Build(new QueueRepositoryInterface()); _fileWriter.WriteToFile("Base", queueRepo); new PrivateSetPropertyHackCleaner().ReplaceHackPropertyNames(_basePath); }