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)); }
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)); }
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()); }
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)}"); }
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)); }
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()); }
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});"); }
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)); }
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()); }
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)); }
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); }
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)); } }
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)); } } }
// 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); }
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)); }
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)); } }
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)); } } }
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)); }
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)); } }
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)); } } }
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)); } }
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()); }
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)); } } }