Esempio n. 1
0
 public string Execute(GenerationArguments Arguments, string TemplateName)
 {
     return
         (string.Join(Environment.NewLine,
                      Arguments.Item.Children
                      .Select(subItem => _templateProcessor.ProcessInjectionTemplate(GetSubarguments(Arguments, subItem, TemplateName)))));
 }
Esempio n. 2
0
        /// <summary>Запускает действие по кодогенерации</summary>
        /// <param name="ActionName">Название действия кодогенерации</param>
        /// <param name="FileName">Имя файла, в который нужно сгенерировать код</param>
        /// <param name="Items">Элементы генерации</param>
        public void ExecuteAction(string ActionName, string FileName, ICollection <GenerationItem> Items)
        {
            GenerationAction action = _actions[ActionName];

            foreach (InjectionTemplate injection in action.Injections)
            {
                IEnumerable <GenerationItem> filteredItems = Items;
                if (!string.IsNullOrWhiteSpace(injection.InjectionTargetFilter))
                {
                    filteredItems = Items.Where(item => item.Name == injection.InjectionTargetFilter);
                }

                foreach (GenerationItem item in filteredItems)
                {
                    string code = _templateProcessor.ProcessInjectionTemplate(new GenerationArguments(item, injection.Template, injection.InternalTemplates));
                    _injectionsManager.Inject(FileName, injection.Anchor, code);
                }
            }
        }