示例#1
0
        public static void Run(string boundedContextDirectory, IFileSystem fileSystem)
        {
            try
            {
                var srcDirectory  = Path.Combine(boundedContextDirectory, "src");
                var testDirectory = Path.Combine(boundedContextDirectory, "tests");

                Utilities.IsBoundedContextDirectoryGuard(srcDirectory, testDirectory);
                var projectBaseName = Directory.GetParent(srcDirectory).Name;

                var producer = RunPrompt();
                ProducerRegistrationBuilder.CreateProducerRegistration(boundedContextDirectory, srcDirectory, producer, projectBaseName);
                MassTransitModifier.AddProducerRegistation(srcDirectory, producer.EndpointRegistrationMethodName, projectBaseName);

                WriteHelpHeader($"{Environment.NewLine}Your producer has been successfully registered. Keep up the good work!");

                var panel = new Panel(@$ "[bold yellow4](await IsFaultyPublished<{producer.MessageName}>()).Should().BeFalse();
(await IsPublished<{producer.MessageName}>()).Should().BeTrue();[/]");
示例#2
0
        public static void AddProducers(List <Producer> producers, string projectBaseName, string srcDirectory)
        {
            var validator = new ProducerValidator();

            foreach (var producer in producers)
            {
                var results = validator.Validate(producer);
                if (!results.IsValid)
                {
                    throw new DataValidationErrorException(results.Errors);
                }
            }

            producers.ForEach(producer =>
            {
                ProducerBuilder.CreateProducerFeature(srcDirectory, producer, projectBaseName);
                ProducerRegistrationBuilder.CreateProducerRegistration(srcDirectory, producer, projectBaseName);
                MassTransitModifier.AddProducerRegistation(srcDirectory, producer.EndpointRegistrationMethodName, projectBaseName);
            });
        }
示例#3
0
        public static void AddConsumers(List <Consumer> consumers, string projectBaseName, string solutionDirectory, string srcDirectory, string testDirectory, IFileSystem fileSystem)
        {
            var validator = new ConsumerValidator();

            foreach (var consumer in consumers)
            {
                var results = validator.Validate(consumer);
                if (!results.IsValid)
                {
                    throw new DataValidationErrorException(results.Errors);
                }
            }

            consumers.ForEach(consumer =>
            {
                ConsumerBuilder.CreateConsumerFeature(solutionDirectory, srcDirectory, consumer, projectBaseName);
                ConsumerRegistrationBuilder.CreateConsumerRegistration(srcDirectory, consumer, projectBaseName);
                MassTransitModifier.AddConsumerRegistation(srcDirectory, consumer.EndpointRegistrationMethodName, projectBaseName);

                IntegrationTestFixtureModifier.AddMTConsumer(testDirectory, consumer.ConsumerName, consumer.DomainDirectory, projectBaseName, srcDirectory);
                ConsumerTestBuilder.CreateTests(solutionDirectory, testDirectory, srcDirectory, consumer, projectBaseName, fileSystem);
            });
        }