Exemplo n.º 1
0
 public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
 {
     RegisterTemplate(UserContextInterfaceTemplate.Identifier, project => new UserContextInterfaceTemplate(project));
     RegisterTemplate(UserContextStaticTemplate.Identifier, project => new UserContextStaticTemplate(project));
     RegisterTemplate(UserContextProviderInterfaceTemplate.Identifier, project => new UserContextProviderInterfaceTemplate(project));
     RegisterTemplate(UserContextProviderTemplate.Identifier, project => new UserContextProviderTemplate(project, application.EventDispatcher));
 }
Exemplo n.º 2
0
        public bool Match(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            if (operationModel.Parameters.Count() != 1)
            {
                return(false);
            }

            if (!operationModel.Parameters.Any(p => string.Equals(p.Name, "id", StringComparison.OrdinalIgnoreCase)))
            {
                return(false);
            }

            if (operationModel?.ReturnType?.TypeReference?.IsCollection ?? false)
            {
                return(false);
            }

            var lowerDomainName    = domainModel.Name.ToLower();
            var lowerOperationName = operationModel.Name.ToLower();

            return(new[]
            {
                "get",
                $"get{lowerDomainName}",
                "find",
                "findbyid",
                $"find{lowerDomainName}",
                $"find{lowerDomainName}byid",
                lowerDomainName
            }
                   .Contains(lowerOperationName));
        }
        public bool Match(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            if (operationModel.Parameters.Any())
            {
                return(false);
            }

            if (!(operationModel?.ReturnType?.TypeReference?.IsCollection ?? false))
            {
                return(false);
            }

            var lowerDomainName       = domainModel.Name.ToLower();
            var pluralLowerDomainName = Vocabularies.Default.Pluralize(lowerDomainName);
            var lowerOperationName    = operationModel.Name.ToLower();

            return(new[]
            {
                "get",
                $"get{lowerDomainName}",
                $"get{pluralLowerDomainName}",
                "getall",
                "find",
                $"find{lowerDomainName}",
                $"find{pluralLowerDomainName}",
                "findall"
            }
                   .Contains(lowerOperationName));
        }
        public bool Match(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            if (operationModel.Parameters.Count() != 1)
            {
                return(false);
            }

            if (!operationModel.Parameters.Any(p => string.Equals(p.Name, "id", StringComparison.OrdinalIgnoreCase)))
            {
                return(false);
            }

            if (operationModel.ReturnType != null)
            {
                return(false);
            }

            var lowerDomainName    = domainModel.Name.ToLower();
            var lowerOperationName = operationModel.Name.ToLower();

            return(new[]
            {
                "delete",
                $"delete{lowerDomainName}"
            }
                   .Contains(lowerOperationName));
        }
Exemplo n.º 5
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var entityModels = metaDataManager.GetMetaData <Class>(new MetaDataIdentifier("Entity")).Where(x => x.BoundedContext() == application.ApplicationName).ToList();
            var enumModels   = metaDataManager.GetMetaData <EnumDefinition>(new MetaDataIdentifier("Enums")).Where(x => x.BoundedContext() == application.ApplicationName).ToList();

            if (entityModels.All(x => !x.IsEntity()))
            {
                Logging.Log.Debug("Intent.RichDomain - no entities marked with Aggregate Root or Entity stereotypes.");
                return;
            }

            foreach (var model in entityModels)
            {
                if (!model.IsEntity())
                {
                    continue;
                }
                RegisterTemplate(DomainEntityStateTemplate.Identifier, project => new DomainEntityStateTemplate(model, project));
                RegisterTemplate(DomainEntityStateInterfaceTemplate.Identifier, project => new DomainEntityStateInterfaceTemplate(model, project));
                RegisterTemplate(DomainEntityBehaviourTemplate.Identifier, project => new DomainEntityBehaviourTemplate(model, project));
                RegisterTemplate(DomainEntityBehaviourBaseTemplate.Identifier, project => new DomainEntityBehaviourBaseTemplate(model, project));
                if (model.IsAggregateRoot())
                {
                    RegisterTemplate(DomainEntitySpecificationTemplate.Identifier, project => new DomainEntitySpecificationTemplate(model, project));
                }
            }

            foreach (var enumModel in enumModels.Where(x => x.Stereotypes.All(s => s.Name != "CommonType")))
            {
                RegisterTemplate(DomainEnumTemplate.Identifier, project => new DomainEnumTemplate(enumModel, project));
            }

            RegisterDecorator <IDomainEntityStateDecorator>(EnforceConstraintsEntityStateDecorator.Identifier, new EnforceConstraintsEntityStateDecorator());
        }
Exemplo n.º 6
0
        public string GetImplementation(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            var idParam  = operationModel.Parameters.First(p => string.Equals(p.Name, "id", StringComparison.OrdinalIgnoreCase));
            var dtoParam = operationModel.Parameters.First(p => !string.Equals(p.Name, "id", StringComparison.OrdinalIgnoreCase));

            return($@"var existing{domainModel.Name} ={ (operationModel.IsAsync() ? " await" : "") } {domainModel.Name.ToPrivateMember()}Repository.FindById{ (operationModel.IsAsync() ? "Async" : "") }({idParam.Name});
                {EmitPropertyAssignments(metaDataManager, application, domainModel, "existing"+ domainModel.Name, dtoParam)}");
        }
Exemplo n.º 7
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            RegisterTemplate(RequireHttpsMiddlewareTemplate.Identifier, project => new RequireHttpsMiddlewareTemplate(project));

            RegisterDecorator <WebApiConfigTemplateDecoratorBase>(WebApiConfigJsonValidationDecorator.Identifier, new WebApiConfigJsonValidationDecorator());
            RegisterDecorator <IOwinStartupDecorator>(WebApiOwinStartupDecorator.Identifier, new WebApiOwinStartupDecorator());
            RegisterDecorator <IOwinStartupDecorator>(UseHttpsOwinStartupDecorator.Identifier, new UseHttpsOwinStartupDecorator());
        }
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            RegisterDecorator <IWebConfigDecorator>(NLogWebConfigDecorator.Identifier, new NLogWebConfigDecorator());

            RegisterTemplate(OperationRequestIdTemplate.Identifier, project => new OperationRequestIdTemplate(project));
            RegisterTemplate(NLogOperationRequestIdRendererTemplate.Identifier, project => new NLogOperationRequestIdRendererTemplate(project));
            RegisterTemplate(SanitizingJsonSerializerTemplate.Identifier, project => new SanitizingJsonSerializerTemplate(project));
        }
Exemplo n.º 9
0
 public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
 {
     RegisterDecorator <IDomainBehaviourDecorator>(UserContextDomainBehaviourDecorator.Identifier, new UserContextDomainBehaviourDecorator());
     RegisterDecorator <IDomainEntityBehaviourBaseDecorator>(UserContextDomainEntityBehaviourBaseDecorator.Identifier, new UserContextDomainEntityBehaviourBaseDecorator());
     RegisterDecorator <IDomainEntityStateDecorator>(UserContextDomainEntityStateDecorator.Identifier, new UserContextDomainEntityStateDecorator());
     RegisterDecorator <IDomainEntityStateInterfaceTemplateDecorator>(UserContextDomainEntityStateInterfaceTemplateDecorator.Identifier, new UserContextDomainEntityStateInterfaceTemplateDecorator());
     RegisterDecorator <IEFMappingTemplateDecorator>(UserContextEFMappingTemplateDecorator.Identifier, new UserContextEFMappingTemplateDecorator());
 }
Exemplo n.º 10
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            SolutionFile existingSolution = null;

            if (File.Exists(application.GetSolutionPath()))
            {
                existingSolution = SolutionFile.Parse(application.GetSolutionPath());
            }
            RegisterApplicationTeamplate(new VisualStudio2015SolutionTemplate(application, existingSolution));

            RegisterDecorator <IWebConfigDecorator>(CoreDecoratorId.AssemblyBindingRedirectWebConfig, new AssemblyBindingRedirectWebConfigDecorator());

            foreach (var project in application.Projects)
            {
                if (project.ProjectType.Id == CSharpLibrary)
                {
                    project.RegisterTemplateInstance(new Templates.LibraryCSProjectFile.LibraryCSProjectFileTemplate(project));
                    project.RegisterTemplateInstance(new Templates.NuGetPackagesConfig.NuGetPackagesConfigTemplate(project));
                    project.RegisterTemplateInstance(new Templates.AssemblyInfo.AssemblyInfoTemplate(project));
                }
                else if (project.ProjectType.Id == WebApiApplication)
                {
                    project.RegisterTemplateInstance(new Templates.WebApiServiceCSProjectFile.WebApiServiceCSProjectFileTemplate(project));
                    project.RegisterTemplateInstance(new Templates.WebConfig.WebApiWebConfigFileTemplate(project, application.EventDispatcher));
                    project.RegisterTemplateInstance(new Templates.NuGetPackagesConfig.NuGetPackagesConfigTemplate(project));
                    project.RegisterTemplateInstance(new Templates.AssemblyInfo.AssemblyInfoTemplate(project));
                }
                else if (project.ProjectType.Id == WcfApplication)
                {
                    project.RegisterTemplateInstance(new Templates.WcfServiceCSProjectFile.WcfServiceCSProjectFileTemplate(project));
                    project.RegisterTemplateInstance(new Templates.WebConfig.WebApiWebConfigFileTemplate(project, application.EventDispatcher));
                    project.RegisterTemplateInstance(new Templates.NuGetPackagesConfig.NuGetPackagesConfigTemplate(project));
                    project.RegisterTemplateInstance(new Templates.AssemblyInfo.AssemblyInfoTemplate(project));
                }
                else if (project.ProjectType.Id == ConsoleApplication)
                {
                    project.RegisterTemplateInstance(new ConsoleAppCsProjectFileTemplate(project));
                    project.RegisterTemplateInstance(new Templates.NuGetPackagesConfig.NuGetPackagesConfigTemplate(project));
                    project.RegisterTemplateInstance(new Templates.AssemblyInfo.AssemblyInfoTemplate(project));
                }
                else if (project.ProjectType.Id == NodeJsConsoleApplication)
                {
                    project.RegisterTemplateInstance(new Templates.NodeJSProjectFile.NodeJSProjectFileTemplate(project));
                }
            }

            //RegisterTemplate(CoreTemplateId.ConsoleApp, project => new Templates.ConsoleApp.ConsoleAppTemplate(project));

            //RegisterTemplate(CoreTemplateId.ProjectCSLibrary, project => new Templates.LibraryCSProjectFile.LibraryCSProjectFileTemplate(project));
            //RegisterTemplate(CoreTemplateId.ConsoleAppCsProject, project => new Templates.ConsoleApp.ConsoleAppCsProjectFile.ConsoleAppCsProjectFileTemplate(project));
            //RegisterTemplate(CoreTemplateId.NuGetPackagesConfig, project => new Templates.NuGetPackagesConfig.NuGetPackagesConfigTemplate(project));
            //RegisterTemplate(CoreTemplateId.AssemblyInfo, project => new Templates.AssemblyInfo.AssemblyInfoTemplate(project));
            //RegisterTemplate(CoreTemplateId.ProjectWCF, project => new Templates.WcfServiceCSProjectFile.WcfServiceCSProjectFileTemplate(project));
            //RegisterTemplate(CoreTemplateId.WcfServiceWebConfig, project => new Templates.WebConfig.WcfServiceWebConfigTemplate(project));
            //RegisterTemplate(CoreTemplateId.ProjectWebApi, project => new Templates.WebApiServiceCSProjectFile.WebApiServiceCSProjectFileTemplate(project, hostingConfig));
            //RegisterTemplate(CoreTemplateId.WebApiWebConfig, project => new Templates.WebConfig.WebApiWebConfigFileTemplate(project, application.EventDispatcher));
        }
        public string GetImplementation(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            return($@"var new{domainModel.Name} = new {domainModel.Name}
                {{
{EmitPropertyAssignments(metaDataManager, application, domainModel, operationModel.Parameters.First())}
                }};
                
                {domainModel.Name.ToPrivateMember()}Repository.Add(new{domainModel.Name});");
        }
Exemplo n.º 12
0
 public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
 {
     RegisterTemplate(AngularAppTemplate.Identifier, project => new AngularAppTemplate(project, application.EventDispatcher));
     RegisterTemplate(AngularCommonTemplate.Identifier, project => new AngularCommonTemplate(project));
     RegisterTemplate(AngularConfigJsTemplate.Identifier, project => new AngularConfigJsTemplate(project, application.EventDispatcher));
     RegisterTemplate(IndexHtmlFileTemplate.Identifier, project => new IndexHtmlFileTemplate(project, application.EventDispatcher));
     RegisterTemplate(AngularShellStateTemplate.Identifier, project => new AngularShellStateTemplate(project));
     RegisterTemplate(AngularShellViewModelTemplate.Identifier, project => new AngularShellViewModelTemplate(project));
     RegisterTemplate(AngularShellViewTemplate.Identifier, project => new AngularShellViewTemplate(project));
 }
Exemplo n.º 13
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var serviceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy")).Where(x => x.ApplicationName == application.ApplicationName).ToList();

            RegisterTemplate(HttpRequestMessageExtensionsTemplate.Identifier, project => new HttpRequestMessageExtensionsTemplate(project));
            RegisterTemplate(ServiceBoundaryAuditingStrategyTemplate.Identifier, project => new ServiceBoundaryAuditingStrategyTemplate(project));

            RegisterDecorator <IDistributionDecorator>(AuditingDistributionDecorator.Identifier, new AuditingDistributionDecorator(application));
            RegisterDecorator <IUnityRegistrationsDecorator>(AuditingUnityRegistrationsDecorator.Identifier, new AuditingUnityRegistrationsDecorator());
        }
Exemplo n.º 14
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var hostingConfig = metaDataManager.GetMetaData <HostingConfigModel>("LocalHosting").SingleOrDefault(x => x.ApplicationName == application.ApplicationName);

            RegisterDecorator <IOwinStartupDecorator>(IdentityServerOwinStartupDecorator.Identifier, new IdentityServerOwinStartupDecorator(hostingConfig, application.EventDispatcher, application.SolutionEventDispatcher));

            RegisterTemplate(SigningCertificateTemplate.Identifier, project => new SigningCertificateTemplate(project));
            RegisterTemplate(AspNetIdentityModelTemplate.Identifier, project => new AspNetIdentityModelTemplate(project, application.EventDispatcher));
            RegisterTemplate(AspNetIdentityUserServiceTemplate.Identifier, project => new AspNetIdentityUserServiceTemplate(project));
            RegisterTemplate(IdentityServerClientsTemplate.Identifier, project => new IdentityServerClientsTemplate(project, application.SolutionEventDispatcher));
            RegisterTemplate(IdentityServerScopesTemplate.Identifier, project => new IdentityServerScopesTemplate(project));
        }
Exemplo n.º 15
0
        public static string ImplementOnMatch(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            foreach (var strategy in _strategies)
            {
                if (strategy.Match(metaDataManager, application, domainModel, operationModel))
                {
                    return(strategy.GetImplementation(metaDataManager, application, domainModel, operationModel));
                }
            }

            return(string.Empty);
        }
Exemplo n.º 16
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var dtoModels  = metaDataManager.GetMetaData <DtoModel>(new MetaDataIdentifier("DtoProjection")).Where(x => x.BoundedContextName == application.ApplicationName).ToList();
            var enumModels = metaDataManager.GetMetaData <EnumDefinition>(new MetaDataIdentifier("Enums")).Where(x => x.BoundedContext() == application.ApplicationName).ToList();

            var mappingModels = dtoModels.SelectMany((o) => o.Mappings).ToList();

            if (mappingModels.Count > 0)
            {
                RegisterTemplate(DTOMappingTemplate.Identifier, project => new DTOMappingTemplate(project, mappingModels, enumModels));
                RegisterTemplate(EntityMappingExtensionsTemplate.Identifier, project => new EntityMappingExtensionsTemplate(project));
            }
        }
Exemplo n.º 17
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var serviceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy")).Where(x => x.ApplicationName == application.ApplicationName).ToList();

            foreach (var serviceModel in serviceModels)
            {
                RegisterTemplate(ServiceImplementationTemplate.Identifier, project => new ServiceImplementationTemplate(serviceModel, project));

                foreach (var operationModel in serviceModel.Operations)
                {
                    RegisterTemplate(ServiceCallHandlerImplementationTemplate.Identifier, project => new ServiceCallHandlerImplementationTemplate(serviceModel, operationModel, project));
                }
            }
        }
Exemplo n.º 18
0
    // Call to clean up when a project is closed
    private void Clear()
    {
        m_MetaDataManager   = new MetaDataManager();
        m_DataAssets        = new Dictionary <string, List <TimeStepDataAsset> >();
        CurrentVariableName = "";
        CurrentVariableMin  = 0;
        CurrentVariableMax  = 0;
        MetaData            = null;

        m_TimelineUI.Show(false);
        m_CameraModeUI.Show(false);
        m_DataTypeUI.Show(false);
        Singleton.GetVolumeRenderer().Show(false);
    }
Exemplo n.º 19
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var hostingConfig = metaDataManager.GetMetaData <HostingConfigModel>("LocalHosting").SingleOrDefault(x => x.ApplicationName == application.ApplicationName);

            RegisterTemplate(AngularImplicitAuthModuleTemplate.Identifier, project => new AngularImplicitAuthModuleTemplate(project, hostingConfig, application.EventDispatcher, application.SolutionEventDispatcher));
            RegisterTemplate(AngularAuthHttpInterceptorServiceTemplate.Identifier, project => new AngularAuthHttpInterceptorServiceTemplate(project));
            RegisterTemplate(LoginCallbackStateTemplate.Identifier, project => new LoginCallbackStateTemplate(project));
            RegisterTemplate(LoginCallbackViewTemplate.Identifier, project => new LoginCallbackViewTemplate(project));
            RegisterTemplate(LoginCallbackViewModelTemplate.Identifier, project => new LoginCallbackViewModelTemplate(project));
            RegisterTemplate(LoginRedirectStateTemplate.Identifier, project => new LoginRedirectStateTemplate(project));
            RegisterTemplate(LoginRedirectViewTemplate.Identifier, project => new LoginRedirectViewTemplate(project));
            RegisterTemplate(SilentRenewCallbackViewTemplate.Identifier, project => new SilentRenewCallbackViewTemplate(project));
            RegisterTemplate(AngularUserInfoServiceTemplate.Identifier, project => new AngularUserInfoServiceTemplate(project));
        }
Exemplo n.º 20
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var dtoModels     = metaDataManager.GetMetaData <DtoModel>(new MetaDataType("DtoProjection")).Where(x => x.BoundedContextName == application.ApplicationName).ToList();
            var serviceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy")).Where(x => x.ApplicationName == application.ApplicationName).ToList();

            foreach (var model in dtoModels)
            {
                RegisterTemplate(DTOTemplate.Identifier, project => new DTOTemplate(project, model));
            }

            foreach (var serviceModel in serviceModels)
            {
                RegisterTemplate(ServiceContractTemplate.Identifier, project => new ServiceContractTemplate(serviceModel, project));
            }
        }
Exemplo n.º 21
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var clientServiceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataIdentifier("Service-Legacy")).Where(x => x.Clients.Contains(application.ApplicationName)).ToList();

            foreach (var serviceModel in clientServiceModels)
            {
                if (serviceModel.DistributionMode != ServiceDistributionMode.WebApi)
                {
                    return;
                }

                if (serviceModel.ApplicationName != application.ApplicationName)
                {
                    RegisterTemplate(WebApiClientServiceProxyTemplate.Identifier, project => new WebApiClientServiceProxyTemplate(serviceModel, project));
                }
            }
        }
Exemplo n.º 22
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            RegisterDecorator <DistributionDecoratorBase>(IntentEsbPublishingDistributionDecorator.Identifier, new IntentEsbPublishingDistributionDecorator());
            RegisterDecorator <IWebConfigDecorator>(IntentEsbPublishingWebConfigDecorator.Identifier, new IntentEsbPublishingWebConfigDecorator());

            RegisterDecorator <IEventConsumerDecorator>(Decorators.Legacy.IntentEsbPublishingEventConsumerDecorator.Identifier, new Decorators.Legacy.IntentEsbPublishingEventConsumerDecorator());
            RegisterDecorator <IDistributionDecorator>(Decorators.Legacy.IntentEsbPublishingDistributionDecorator.Identifier, new Decorators.Legacy.IntentEsbPublishingDistributionDecorator());

            var applicationModel = metaDataManager.GetMetaData <ApplicationModel>(new MetaDataType("Application")).FirstOrDefault(x => x.Name == application.ApplicationName);

            if (applicationModel == null)
            {
                Logging.Log.Warning($"ApplicationModel could not be found for application [{ application.ApplicationName }]");
                return;
            }

            RegisterDecorator <IUnityRegistrationsDecorator>(IntentEsbPublishingUnityRegistrationsDecorator.Identifier, new IntentEsbPublishingUnityRegistrationsDecorator(application, applicationModel.EventingModel));
        }
Exemplo n.º 23
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var clientServiceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy")).Where(x => x.Clients.Contains(application.ApplicationName)).ToList();
            var clientDtoModels     = metaDataManager.GetMetaData <DtoModel>(new MetaDataType("DtoProjection")).Where(x => x.Clients.Contains(application.ApplicationName)).ToList();
            var hostingConfig       = metaDataManager.GetMetaData <HostingConfigModel>("LocalHosting").SingleOrDefault(x => x.ApplicationName == application.ApplicationName);

            foreach (var serviceModel in clientServiceModels)
            {
                if (serviceModel.DistributionMode == ServiceDistributionMode.WebApi)
                {
                    RegisterTemplate(TypescriptWebApiClientServiceProxyTemplate.Identifier, project => new TypescriptWebApiClientServiceProxyTemplate(serviceModel, hostingConfig, project, application.EventDispatcher));
                }
            }

            foreach (var model in clientDtoModels)
            {
                RegisterTemplate(TypescriptDtoTemplate.Identifier, project => new TypescriptDtoTemplate(model, project));
            }
        }
Exemplo n.º 24
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var models = metaDataManager.GetMetaData <Class>(new MetaDataIdentifier("Entity")).Where(x => x.BoundedContext() == application.ApplicationName).ToList();

            RegisterTemplate(DbContextTemplate.Identifier, project => new DbContextTemplate(models, project, application.EventDispatcher));
            RegisterTemplate(DeleteVisitorTemplate.Identifier, project => new DeleteVisitorTemplate(models, project));
            foreach (var model in models)
            {
                if (!model.IsEntity())
                {
                    continue;
                }
                RegisterTemplate(EFMappingTemplate.Identifier, project => new EFMappingTemplate(model, project));
                if (model.IsAggregateRoot())
                {
                    RegisterTemplate(RepositoryContractTemplate.Identifier, project => new RepositoryContractTemplate(model, project));
                    RegisterTemplate(RepositoryTemplate.Identifier, project => new RepositoryTemplate(model, project));
                }
            }
        }
Exemplo n.º 25
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var dtoModels = metaDataManager
                            .GetMetaData <DtoModel>(new MetaDataType("DtoProjection"))
                            .Where(x => x.Clients.Any(y => application.ApplicationName.Equals(y, StringComparison.OrdinalIgnoreCase)))
                            .ToList();

            var serviceModels = metaDataManager
                                .GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy"))
                                .Where(x => x.Clients.Any(y => application.ApplicationName.Equals(y, StringComparison.OrdinalIgnoreCase)))
                                .ToList();

            foreach (var model in dtoModels)
            {
                RegisterTemplate(TemplateIds.ClientDtoLegacy, project => new DTOTemplate(project, model, TemplateIds.ClientDtoLegacy));
            }

            foreach (var serviceModel in serviceModels)
            {
                RegisterTemplate(TemplateIds.ClientLegacyServiceContractLegacy, project => new ServiceContractTemplate(serviceModel, project, TemplateIds.ClientLegacyServiceContractLegacy));
            }
        }
Exemplo n.º 26
0
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var serviceModels = metaDataManager.GetMetaData <ServiceModel>(new MetaDataType("Service-Legacy")).Where(x => x.ApplicationName == application.ApplicationName).ToList();

            RegisterTemplate(OwinWebApiConfigTemplate.Identifier, project => new OwinWebApiConfigTemplate(project));
            RegisterTemplate(HttpExceptionHandlerTemplate.Identifier, project => new HttpExceptionHandlerTemplate(project, application.EventDispatcher));
            RegisterTemplate(WebApiBadHttpRequestExceptionTemplate.Identifier, project => new WebApiBadHttpRequestExceptionTemplate(project));
            RegisterTemplate(RequireHttpsMiddlewareTemplate.Identifier, project => new RequireHttpsMiddlewareTemplate(project));

            foreach (var serviceModel in serviceModels)
            {
                RegisterTemplate(WebApiControllerTemplate.Identifier, project => new WebApiControllerTemplate(serviceModel, project));
            }

            RegisterDecorator <DistributionDecoratorBase>(WebApiDistributionExceptionHandlingStrategy.Identifier, new WebApiDistributionExceptionHandlingStrategy());
            RegisterDecorator <IDistributionDecorator>(Decorators.Legacy.WebApiDistributionExceptionHandlingStrategy.Identifier, new Decorators.Legacy.WebApiDistributionExceptionHandlingStrategy());
            RegisterDecorator <IDistributionDecorator>(Decorators.Legacy.WebApiDistributionJsonValidationDecorator.Identifier, new Decorators.Legacy.WebApiDistributionJsonValidationDecorator());
            RegisterDecorator <IDistributionDecorator>(Decorators.Legacy.DebugSleepDistributionDecorator.Identifier, new Decorators.Legacy.DebugSleepDistributionDecorator(300));
            RegisterDecorator <IWebApiConfigTemplateDecorator>(WebApiConfigJsonValidationDecorator.Identifier, new WebApiConfigJsonValidationDecorator());
            RegisterDecorator <IOwinStartupDecorator>(WebApiOwinStartupDecorator.Identifier, new WebApiOwinStartupDecorator());
            RegisterDecorator <IOwinStartupDecorator>(UseHttpsOwinStartupDecorator.Identifier, new UseHttpsOwinStartupDecorator());
        }
Exemplo n.º 27
0
        private string EmitPropertyAssignments(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, string domainVarName, IOperationParameterModel operationParameterModel)
        {
            var sb  = new StringBuilder();
            var dto = metaDataManager.GetDTOModels(application).First(p => p.Id == operationParameterModel.TypeReference.Id);

            foreach (var domainAttribute in domainModel.Attributes)
            {
                var dtoField = dto.Fields.FirstOrDefault(p => p.Name.Equals(domainAttribute.Name, StringComparison.OrdinalIgnoreCase));
                if (dtoField == null)
                {
                    sb.AppendLine($"                    #warning No matching field found for {domainAttribute.Name}");
                    continue;
                }
                if (domainAttribute.Type.Id != dtoField.TypeReference.Id)
                {
                    sb.AppendLine($"                    #warning No matching type for Domain: {domainAttribute.Name} and DTO: {dtoField.Name}");
                    continue;
                }
                sb.AppendLine($"                    {domainVarName}.{domainAttribute.Name.ToPascalCase()} = {operationParameterModel.Name}.{dtoField.Name.ToPascalCase()};");
            }

            return(sb.ToString().Trim());
        }
        public override void RegisterStuff(IApplication application, IMetaDataManager metaDataManager)
        {
            var applicationModel = metaDataManager.GetMetaData <ApplicationModel>(new MetaDataType("Application")).FirstOrDefault(x => x.Name == application.ApplicationName);

            if (applicationModel == null)
            {
                Logging.Log.Warning($"ApplicationModel could not be found for application [{ application.ApplicationName }]");
                return;
            }

            RegisterDecorator <IUnityRegistrationsDecorator>(IntentEsbConsumingUnityRegistrationsDecorator.Identifier, new IntentEsbConsumingUnityRegistrationsDecorator(application, applicationModel.EventingModel));

            var subscribing = applicationModel.EventingModel.Subscribing;

            if (subscribing.ConsumptionChannel == EventConsumptionChannel.WebApi)
            {
                RegisterTemplate(WebApiEventConsumerServiceTemplate.Identifier, project => new WebApiEventConsumerServiceTemplate(project, applicationModel.EventingModel.Subscribing, application.EventDispatcher));
            }
            foreach (var eventType in subscribing.SubscribedEvents)
            {
                RegisterTemplate(MessageHandlerTemplate.Identifier, project => new MessageHandlerTemplate(project, eventType));
            }
        }
        public bool Match(IMetaDataManager metaDataManager, SoftwareFactory.Engine.IApplication application, IClass domainModel, IOperationModel operationModel)
        {
            if (operationModel.Parameters.Count() != 1)
            {
                return(false);
            }

            if (operationModel.ReturnType != null)
            {
                return(false);
            }

            var lowerDomainName    = domainModel.Name.ToLower();
            var lowerOperationName = operationModel.Name.ToLower();

            return(new[]
            {
                "post",
                $"post{lowerDomainName}",
                "create",
                $"create{lowerDomainName}",
            }
                   .Contains(lowerOperationName));
        }
        public override void RegisterStuff(IApplication applicationManager, IMetaDataManager metaDataManager)
        {
            RegisterDecorator <AbstractDomainEntityDecorator>(nameof(DDDEntityDecorator), new DDDEntityDecorator());
            RegisterDecorator <AbstractDomainEntityDecorator>(nameof(SerializableEntityDecorator), new SerializableEntityDecorator());
            RegisterDecorator <AbstractDomainEntityInterfaceDecorator>(nameof(DDDEntityInterfaceDecorator), new DDDEntityInterfaceDecorator());
            RegisterDecorator <AbstractDomainEntityInterfaceDecorator>(nameof(SerializableEntityInterfaceDecorator), new SerializableEntityInterfaceDecorator());

            var entityModels = metaDataManager.GetMetaData <Class>(new MetaDataType("DomainEntity")).Where(x => x.Application.Name == applicationManager.ApplicationName);

            foreach (var entityModel in entityModels)
            {
                if (entityModel.Stereotypes.All(x => x.Name != "Serializable"))
                {
                    continue;
                }

                RegisterTemplate(nameof(DomainEntityTemplate), project => new DomainEntityTemplate(entityModel, project));
                RegisterTemplate(nameof(DomainEntityInterfaceTemplate), project => new DomainEntityInterfaceTemplate(entityModel, project));
                if (entityModel.Stereotypes.Any(x => x.Name == "Behaviours"))
                {
                    RegisterTemplate(nameof(DomainEntityBehaviourTemplate), project => new DomainEntityBehaviourTemplate(entityModel, project));
                }
            }
        }