/// <summary> /// Constructor. /// </summary> /// <param name="application">Application to be managed.</param> /// <param name="prototype">Whole prototype with entities and resources.</param> /// <param name="configProvider">Configuration provider.</param> public WebJobManager(WorkerApplication application, Prototype prototype, IConfigProvider configProvider) : base(new ApplicationGenerator <WorkerApplication>(application, configProvider.GetValue("OutputFolderPath") + "\\" + application.Name), prototype, "DotNet46", configProvider.GetValue("OutputFolderPath") + "\\" + application.Name, configProvider.GetValue("OutputFolderPath") + "\\" + application.Name , configProvider) { Container.Kernel.Resolver.AddSubResolver(new CollectionResolver(Container.Kernel, true)); var operations = Utils.FindAllInstances <Operation>(application); var actions = Utils.FindAllInstances <Action>(application); ProjectFactory.RegisterOperations(NamingConstants.WorkerName, actions, Container); ProjectFactory.RegisterEntities(NamingConstants.WorkerName, application, prototype, Container); ProjectFactory.RegisterResources(NamingConstants.WorkerName, application, prototype, operations, Container); RegisterWorkerComponents(application, prototype); var handlers = Container.Kernel.GetAssignableHandlers(typeof(IGenerableFile)); List <IGenerableFile> consoleProjectFiles = ProjectFactory.ResolveHandlers(handlers, Container, NamingConstants.WorkerName); InitConsoleProject(consoleProjectFiles, Container); RegisterSolutionFiles(application); var allFiles = ProjectFactory.ResolveHandlers(Container.Kernel.GetAssignableHandlers(typeof(IGenerableFile)), Container); ApplicationGenerator.Files.AddRange(allFiles); }
private void RegisterDataLayer(RestApiApplication application, Prototype prototype, List <Operation> operations, WindsorContainer container) { ProjectFactory.RegisterEntities(NamingConstants.DataLayerProjectName, application, prototype, container); ProjectFactory.RegisterResources(NamingConstants.DataLayerProjectName, application, prototype, operations, container); }