Exemplo n.º 1
0
        private string[] AddEventTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, Dictionary <string, string> result, AppNode cmdNode)
        {
            if (cmdNode.Name.StartsWith("upsert", StringComparison.OrdinalIgnoreCase))
            {
                var cmdBase = cmdNode.Name.Substring("upsert".Length);

                var eventCreated    = GetEventName("Create" + cmdBase);
                var createdPath     = $"{cmdNode.GetFullPath()}/{eventCreated}.cs";
                var createdTemplate = GetEventTemplate(templates, cmdNode, eventCreated);
                result[createdPath] = createdTemplate.GetReplacedContent();

                var eventUpdated    = GetEventName("Update" + cmdBase);
                var updatedPath     = $"{cmdNode.GetFullPath()}/{eventUpdated}.cs";
                var updatedTemplate = GetEventTemplate(templates, cmdNode, eventUpdated);
                result[updatedPath] = updatedTemplate.GetReplacedContent();

                return(new[] { createdPath, updatedPath });
            }
            else
            {
                var eventName = GetEventName(cmdNode.Name);
                var path      = $"{cmdNode.GetFullPath()}/{eventName}.cs";
                var template  = GetEventTemplate(templates, cmdNode, eventName);
                result[path] = template.GetReplacedContent();

                return(new[] { path });
            }
        }
Exemplo n.º 2
0
        private ResourceTemplate GetQueryTestTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.UnitTestQuery];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var persistNsPlaceholder = $"{_config.Namespace}.Persistence";
            var queryNsPlaceholder   = $"{appNsPlaceholder}.{queryNode.GetFullPath(".")}";
            var namespacePlaceholder = $"{appNsPlaceholder}.UnitTests.{queryNode.Parent.GetFullPath(".")}";
            var vmPlaceholder        = $"{GetQueryBaseName(queryNode, trimGet: true)}Vm";

            template.SetParameter(TemplateParameterType.QueryNsPlaceholder, queryNsPlaceholder);
            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.PersistenceNsPlaceholder, persistNsPlaceholder);

            template.SetParameter(TemplateParameterType.QueryPlaceholder, queryNode.Name);// special case here without "Query" suffix
            template.SetParameter(TemplateParameterType.FixturePlaceholder, $"{queryNode.Name}QueryTests");
            template.SetParameter(TemplateParameterType.HandlerPlaceholder, $"{queryNode.Name}QueryHandler");
            template.SetParameter(TemplateParameterType.DbContextPlaceholder, GetQueryTestDbContext(_config.DbContext));
            template.SetParameter(TemplateParameterType.VmPlaceholder, vmPlaceholder);

            return(template);
        }
Exemplo n.º 3
0
        private ResourceTemplate GetQueryIntegrationTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.IntegrationTestQuery];

            template.ResetParameters();

            var urlPlaceholder       = GetQueryApiUrl(queryNode);
            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var webNsPlaceholder     = $"{_config.Namespace}.{_config.UiSuffix}";
            var queryNsPlaceholder   = $"{appNsPlaceholder}.{queryNode.GetFullPath(".")}";
            var queriesNsPlaceholder = $"{appNsPlaceholder}.{queryNode.Parent.GetFullPath(".")}";
            var namespacePlaceholder = $"{webNsPlaceholder}.IntegrationTests.Controllers.{queryNode.GetDomainName()}";
            var vmPlaceholder        = $"{GetQueryBaseName(queryNode, trimGet: true)}Vm";

            template.SetParameter(TemplateParameterType.QueryNsPlaceholder, queryNsPlaceholder);
            template.SetParameter(TemplateParameterType.QueriesNsPlaceholder, queriesNsPlaceholder);
            template.SetParameter(TemplateParameterType.WebNsPlaceholder, webNsPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);

            template.SetParameter(TemplateParameterType.QueryPlaceholder, queryNode.Name);// special case here without "Query" suffix
            template.SetParameter(TemplateParameterType.FixturePlaceholder, $"{queryNode.Name}QueryTests");
            template.SetParameter(TemplateParameterType.VmPlaceholder, vmPlaceholder);
            template.SetParameter(TemplateParameterType.UrlPlaceholder, urlPlaceholder);

            return(template);
        }
Exemplo n.º 4
0
        private string AddCommandHandlerTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, Dictionary <string, string> result, AppNode cmdNode)
        {
            var path     = $"{cmdNode.GetFullPath()}/{cmdNode.Name}CommandHandler.cs";
            var template = GetCommandHandlerTemplate(templates, cmdNode);

            result[path] = template.GetReplacedContent();
            return(path);
        }
Exemplo n.º 5
0
        private string AddDetailHandlerTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, Dictionary <string, string> result, AppNode queryNode)
        {
            var path     = $"{queryNode.GetFullPath()}/{queryNode.Name}QueryHandler.cs";
            var template = GetDetailHandlerTemplate(templates, queryNode);

            result[path] = template.GetReplacedContent();
            return(path);
        }
Exemplo n.º 6
0
        private string AddDetailVmTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, Dictionary <string, string> result, AppNode queryNode)
        {
            var vm       = GetQueryBaseName(queryNode, trimGet: true);
            var path     = $"{queryNode.GetFullPath()}/{vm}Vm.cs";
            var template = GetDetailVmTemplate(templates, queryNode);

            result[path] = template.GetReplacedContent();
            return(path);
        }
Exemplo n.º 7
0
        private string AddDtoTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, Dictionary <string, string> result, AppNode queryNode)
        {
            var dto      = GetDtoPlaceholder(queryNode);
            var path     = $"{queryNode.GetFullPath()}/{dto}.cs";
            var template = GetDtoTemplate(templates, queryNode);

            result[path] = template.GetReplacedContent();
            return(path);
        }
Exemplo n.º 8
0
        private ResourceTemplate GetCommandTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode cmdNode)
        {
            var template = templates[ResourceTemplateType.AppCommand];

            template.ResetParameters();

            var namespacePlaceholder = $"{_config.Namespace}.{_config.AppSuffix}.{cmdNode.GetFullPath(".")}";

            template.SetParameter(TemplateParameterType.CommandPlaceholder, $"{cmdNode.Name}Command");
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            return(template);
        }
Exemplo n.º 9
0
        private ResourceTemplate GetListVmTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.AppListVm];

            template.ResetParameters();

            var namespacePlaceholder = $"{_config.Namespace}.{_config.AppSuffix}.{queryNode.GetFullPath(".")}";
            var dtoPlaceholder       = GetDtoPlaceholder(queryNode);
            var vmPlaceholder        = $"{GetQueryBaseName(queryNode, trimGet: true)}Vm";

            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.DtoPlaceholder, dtoPlaceholder);
            template.SetParameter(TemplateParameterType.VmPlaceholder, vmPlaceholder);

            return(template);
        }
Exemplo n.º 10
0
        private ResourceTemplate GetQueryValidatorTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.AppQueryValidator];

            template.ResetParameters();

            var namespacePlaceholder = $"{_config.Namespace}.{_config.AppSuffix}.{queryNode.GetFullPath(".")}";
            var queryPlaceholder     = $"{queryNode.Name}Query";
            var validatorPlaceholder = $"{queryNode.Name}QueryValidator";

            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.QueryPlaceholder, queryPlaceholder);
            template.SetParameter(TemplateParameterType.ValidatorPlaceholder, validatorPlaceholder);

            return(template);
        }
Exemplo n.º 11
0
        private ResourceTemplate GetEventTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode cmdNode, string eventPlaceholder)
        {
            var template = templates[ResourceTemplateType.AppEvent];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var namespacePlaceholder = $"{appNsPlaceholder}.{cmdNode.GetFullPath(".")}";
            var handlerPlaceholder   = $"{eventPlaceholder}EventHandler";

            template.SetParameter(TemplateParameterType.EventPlaceholder, eventPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.HandlerPlaceholder, handlerPlaceholder);

            return(template);
        }
Exemplo n.º 12
0
        private ResourceTemplate GetDtoTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.AppListDto];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var domainNsPlaceholder  = $"{_config.Namespace}.Domain";
            var namespacePlaceholder = $"{appNsPlaceholder}.{queryNode.GetFullPath(".")}";
            var dtoPlaceholder       = GetDtoPlaceholder(queryNode);

            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.DomainNsPlaceholder, domainNsPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.DtoPlaceholder, dtoPlaceholder);

            return(template);
        }
Exemplo n.º 13
0
        private ResourceTemplate GetCommandTestTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode cmdNode)
        {
            var template = templates[ResourceTemplateType.UnitTestCommand];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var namespacePlaceholder = $"{appNsPlaceholder}.UnitTests.{cmdNode.Parent.GetFullPath(".")}";
            var commandNsPlaceholder = $"{appNsPlaceholder}.{cmdNode.GetFullPath(".")}";

            template.SetParameter(TemplateParameterType.CommandNsPlaceholder, commandNsPlaceholder);
            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);

            template.SetParameter(TemplateParameterType.CommandPlaceholder, $"{cmdNode.Name}Command");
            template.SetParameter(TemplateParameterType.FixturePlaceholder, $"{cmdNode.Name}CommandTests");
            template.SetParameter(TemplateParameterType.HandlerPlaceholder, $"{cmdNode.Name}CommandHandler");

            return(template);
        }
Exemplo n.º 14
0
        private ResourceTemplate GetCommandHandlerTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode cmdNode)
        {
            var template = templates[ResourceTemplateType.AppHandler];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var domainNsPlaceholder  = $"{_config.Namespace}.Domain";
            var namespacePlaceholder = $"{appNsPlaceholder}.{cmdNode.GetFullPath(".")}";

            template.SetParameter(TemplateParameterType.CommandPlaceholder, $"{cmdNode.Name}Command");
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.DomainNsPlaceholder, domainNsPlaceholder);
            template.SetParameter(TemplateParameterType.DbContextPlaceholder, _config.DbContext);

            template.SetParameter(TemplateParameterType.EventPlaceholder, GetEventNameOrUpdated(cmdNode.Name));
            template.SetParameter(TemplateParameterType.HandlerPlaceholder, $"{cmdNode.Name}CommandHandler");

            return(template);
        }
Exemplo n.º 15
0
        private ResourceTemplate GetDetailHandlerTemplate(IDictionary <ResourceTemplateType, ResourceTemplate> templates, AppNode queryNode)
        {
            var template = templates[ResourceTemplateType.AppDetailHandler];

            template.ResetParameters();

            var appNsPlaceholder     = $"{_config.Namespace}.{_config.AppSuffix}";
            var namespacePlaceholder = $"{appNsPlaceholder}.{queryNode.GetFullPath(".")}";
            var queryPlaceholder     = $"{queryNode.Name}Query";
            var handlerPlaceholder   = $"{queryPlaceholder}Handler";
            var vmPlaceholder        = $"{GetQueryBaseName(queryNode, trimGet: true)}Vm";

            template.SetParameter(TemplateParameterType.ApplicationNsPlaceholder, appNsPlaceholder);
            template.SetParameter(TemplateParameterType.NamespacePlaceholder, namespacePlaceholder);
            template.SetParameter(TemplateParameterType.HandlerPlaceholder, handlerPlaceholder);
            template.SetParameter(TemplateParameterType.QueryPlaceholder, queryPlaceholder);
            template.SetParameter(TemplateParameterType.VmPlaceholder, vmPlaceholder);
            template.SetParameter(TemplateParameterType.DbContextPlaceholder, _config.DbContext);

            return(template);
        }