public string Execute(GenerationArguments Arguments, string TemplateName) { return (string.Join(Environment.NewLine, Arguments.Item.Children .Select(subItem => _templateProcessor.ProcessInjectionTemplate(GetSubarguments(Arguments, subItem, TemplateName))))); }
/// <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); } } }