Exemplo n.º 1
0
        public void BuildDomainEventBaseClass()
        {
            var classFactory = new ClassBuilderDirector();
            var baseClass    = classFactory.BuildInstance(new DomainEventBaseClassBuilder(new DomainEventBaseClass()));

            TestUtils.SnapshotTest(baseClass);
        }
Exemplo n.º 2
0
        public void BuildEventStoreRepository()
        {
            var classFactory  = new ClassBuilderDirector();
            var buildInstance = classFactory.BuildInstance(new EventStoreRepositoryBuilder(new EventStoreRepository()));

            TestUtils.SnapshotTest(buildInstance);
        }
Exemplo n.º 3
0
        public void BuildValidationResult()
        {
            var director         = new ClassBuilderDirector();
            var validationResult = director.BuildInstance(new ValidationResultBaseClassBuilder(new ValidationResultBaseClass()));

            TestUtils.SnapshotTest(validationResult);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }