Exemplo n.º 1
0
        private static void Main(string[] args)
        {
            string projectFileName;

            if (args.Length == 1)
            {
                projectFileName = args[0];
            }
            else
            {
                Console.WriteLine("Задайте имя файла проекта в параметрах запуска, или введите сейчас:");
                Console.ForegroundColor = ConsoleColor.Yellow;
                projectFileName         = Console.ReadLine();
                Console.ResetColor();
                if (string.IsNullOrWhiteSpace(projectFileName))
                {
                    return;
                }
            }

//            try
//            {
            var loader = new XmlProjectLoader(projectFileName);
            GenerationProject project = loader.Load();

            IProjectProcessor projectProcessor = new ProjectProcessor();

            projectProcessor.Process(project);

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Проект успешно обработан.");
            Console.ResetColor();
//            }
//            catch (Exception e)
//            {
//                if (Debugger.IsAttached)
//                    throw;
//
//                Console.WriteLine("Во время выполнения программы возникло исключение:");
//                Console.ForegroundColor = ConsoleColor.Red;
//                Console.WriteLine(e.Message);
//                Console.ForegroundColor = ConsoleColor.DarkRed;
//                Console.WriteLine(e);
//                Console.ResetColor();
//                Console.ReadLine();
//            }
        }
Exemplo n.º 2
0
        /// <summary>Выполняет задания, назначенные в указанном проекте</summary>
        /// <param name="Project">Проект для обработки</param>
        public void Process(GenerationProject Project)
        {
            var injectionsManager = new InjectionsManager();
            var extensionsManager = new ReflectingExtensionsManager();

            foreach (GenerationTask task in Project.Tasks)
            {
                var             propertiesResolverFactory = new PropertiesResolverFactory(task.Globals);
                IActionsManager actionsManager            = new ProjectActionsManager(Project.Actions, injectionsManager,
                                                                                      new TemplateProcessor(propertiesResolverFactory,
                                                                                                            extensionsManager));

                foreach (GenerationActionCalling actionCalling in task.CallingActions)
                {
                    actionsManager.ExecuteAction(actionCalling.ActionName, actionCalling.TargetFileName, task.Items);
                }
            }

            injectionsManager.Apply();
        }