public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .ForInterface(GetTemplate <IClassProvider>(DomainEventServiceInterfaceTemplate.TemplateId)) .ForConcern("Infrastructure") .WithPerServiceCallLifeTime()); }
public override void BeforeTemplateExecution() { base.BeforeTemplateExecution(); ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .ForConcern("Application") .ForInterface(GetTemplate <IClassProvider>(ServiceContractTemplate.TemplateId, Model))); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister($"typeof({ClassName}<,>)") .ForInterface("typeof(IPipelineBehavior<,>)") .WithPriority(4) .ForConcern("Application") .RequiresUsingNamespaces("MediatR") .HasDependency(this)); }
private void Handle(ContainerRegistrationRequest @event) { _registrations.Add(@event); //_registrations.Add(new ContainerRegistration( // interfaceType: @event.TryGetValue(ContainerRegistrationEvent.InterfaceTypeKey), // concreteType: @event.GetValue(ContainerRegistrationEvent.ConcreteTypeKey), // lifetime: @event.TryGetValue(ContainerRegistrationEvent.LifetimeKey), // interfaceTypeTemplateDependency: @event.TryGetValue(ContainerRegistrationEvent.InterfaceTypeTemplateIdKey) != null ? TemplateDependency.OnTemplate(@event.TryGetValue(ContainerRegistrationEvent.InterfaceTypeTemplateIdKey)) : null, // concreteTypeTemplateDependency: @event.TryGetValue(ContainerRegistrationEvent.ConcreteTypeTemplateIdKey) != null ? TemplateDependency.OnTemplate(@event.TryGetValue(ContainerRegistrationEvent.ConcreteTypeTemplateIdKey)) : null)); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(new ConnectionStringRegistrationRequest( name: $"{Project.Application.Name}DB", connectionString: $"Server=.;Initial Catalog={ OutputTarget.Application.Name };Integrated Security=true;MultipleActiveResultSets=True", providerName: "System.Data.SqlClient")); ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .WithPerServiceCallLifeTime()); }
private string DefineServiceRegistration(ContainerRegistrationRequest x) { if (x.ConcreteType.StartsWith("typeof(")) { return(x.InterfaceType != null ? $"services.{RegistrationType(x)}({(x.InterfaceType)}, {(x.ConcreteType)});" : $"services.{RegistrationType(x)}({(x.ConcreteType)});"); } return(x.InterfaceType != null ? $"services.{RegistrationType(x)}<{NormalizeNamespace(x.InterfaceType)}, {NormalizeNamespace(x.ConcreteType)}>();" : $"services.{RegistrationType(x)}<{NormalizeNamespace(x.ConcreteType)}>();"); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .WithPerServiceCallLifeTime()); //Project.Application.EventDispatcher.Publish(ContainerRegistrationEvent.EventId, new Dictionary<string, string>() //{ // { ContainerRegistrationEvent.InterfaceTypeKey, null}, // { ContainerRegistrationEvent.ConcreteTypeKey, $"{Namespace}.{ClassName}" }, // { ContainerRegistrationEvent.InterfaceTypeTemplateIdKey, null }, // { ContainerRegistrationEvent.ConcreteTypeTemplateIdKey, Identifier }, // { ContainerRegistrationEvent.LifetimeKey, ContainerRegistrationEvent.PerServiceCallLifetime } //}); }
private void HandleEvent(ContainerRegistrationRequest @event) { if (@event.Concern != "Application") { return; } @event.MarkAsHandled(); _registrationRequests.Add(@event); foreach (var templateDependency in @event.TemplateDependencies) { AddTemplateDependency(templateDependency); } }
private string GetLifetimeManager(ContainerRegistrationRequest registration) { switch (registration.Lifetime) { case ContainerRegistrationRequest.LifeTime.Singleton: return(".SingleInstance()"); case ContainerRegistrationRequest.LifeTime.PerServiceCall: return(".InstancePerRequest()"); case ContainerRegistrationRequest.LifeTime.Transient: return(string.Empty); default: return(string.Empty); } }
private string GetLifetimeManager(ContainerRegistrationRequest registration) { switch (registration.Lifetime) { case ContainerRegistrationRequest.LifeTime.Singleton: return("new ContainerControlledLifetimeManager()"); case ContainerRegistrationRequest.LifeTime.PerServiceCall: return($"new {Project.Application.FindTemplateInstance<IClassProvider>(TemplateDependency.OnTemplate(PerServiceCallLifetimeManagerTemplate.Identifier)).ClassName}()"); case ContainerRegistrationRequest.LifeTime.Transient: return(string.Empty); default: return(string.Empty); } }
private string RegistrationType(ContainerRegistrationRequest registration) { switch (registration.Lifetime) { case ContainerRegistrationRequest.LifeTime.Singleton: return("AddSingleton"); case ContainerRegistrationRequest.LifeTime.PerServiceCall: return("AddScoped"); case ContainerRegistrationRequest.LifeTime.Transient: return("AddTransient"); default: return("AddTransient"); } }
public override void BeforeTemplateExecution() { var contractTemplate = Project.FindTemplateInstance <IClassProvider>(_repositoryInterfaceTemplateDependency); if (contractTemplate == null) { return; } ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .ForConcern("Infrastructure") .ForInterface(contractTemplate)); //Project.Application.EventDispatcher.Publish(ContainerRegistrationEvent.EventId, new Dictionary<string, string>() //{ // { "InterfaceType", $"{contractTemplate.Namespace}.{contractTemplate.ClassName}"}, // { "ConcreteType", $"{Namespace}.{ClassName}" }, // { "InterfaceTypeTemplateId", _repositoryInterfaceTemplateDependency.TemplateId }, // { "ConcreteTypeTemplateId", Identifier } //}); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this).ForInterface("Intent.Framework.Core.Context.IContextBackingStore")); //Project.Application.EventDispatcher.Publish(ContainerRegistrationEvent.EventId, new Dictionary<string, string>() //{ // { "InterfaceType", "Intent.Framework.Core.Context.IContextBackingStore"}, // { "ConcreteType", $"{Namespace}.{ClassName}" } //}); Project.Application.EventDispatcher.Publish(InitializationRequiredEvent.EventId, new Dictionary <string, string>() { { InitializationRequiredEvent.UsingsKey, $@"Intent.Framework.Core.Context; {Namespace};" }, { InitializationRequiredEvent.CallKey, "InitializeServiceCallContext();" }, { InitializationRequiredEvent.MethodKey, $@" private void InitializeServiceCallContext() {{ ServiceCallContext.SetBackingStore(new {ClassName}()); }}" } }); }
private string GetRegistrationString(ContainerRegistrationRequest x) { return(x.InterfaceType != null ? $"{Environment.NewLine} builder.RegisterType<{NormalizeNamespace(x.ConcreteType)}>().As<{NormalizeNamespace(x.InterfaceType)}>(){GetLifetimeManager(x)};" : $"{Environment.NewLine} builder.RegisterType<{NormalizeNamespace(x.ConcreteType)}>(){GetLifetimeManager(x)};"); }
private void Handle(ContainerRegistrationRequest @event) { _registrations.Add(@event); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .ForInterface("IServiceProvider")); }
public override void BeforeTemplateExecution() { ExecutionContext.EventDispatcher.Publish(ContainerRegistrationRequest.ToRegister(this) .ForConcern("Application") ); }