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