public static TemplateCodeGeneratedModel GetCSharpCodeModelForTemplatesTriggerSchema(GetCSharpCodeModelForTriggerTemplatesOptions opts) { opts.Templates.ForEach(x => { x.AnyTimeAllowed = opts.AllowanceRange == null; //Если диапазон значений не указан, следовательно шаблон можно отправлять в любое время x.AllowedFromHour = opts.AllowanceRange?.Min; x.AllowedToHour = opts.AllowanceRange?.Max; }); return(new TemplateCodeGeneratedModel { Resources = TemplateResourceGenerator.GetModelForResourceGeneration(opts.Templates), TemplateSchemaName = opts.TemplateSchemaName, Templates = opts.Templates, TriggersClass = TemplateCodeInitDataClassGenerator.GetTriggersClass(new TemplateCodesInitTriggersOptions { TemplatesData = null, TemplateSchemaName = opts.TemplateSchemaName, StaticClassSummary = opts.ClassSummary }), InitDataClass = TemplateCodeInitDataClassGenerator.GetInitDataClass(new TemplateCodeInitDataOptions { Data = opts.Templates, InteractionType = opts.Type, Summary = opts.ClassSummary, TemplateSchemaName = opts.TemplateSchemaName, ResourcesClassName = opts.ResourcesClassName }) }); }
/// <summary> /// Для каждой группы создает класс с исходными данными для импорта шаблонов /// </summary> public static void GenerateImportClasses <TTemplateBlock>(List <IGrouping <string, TTemplateBlock> > groups, string directory, string resurcesName) where TTemplateBlock : TemplateBlockJustTextModel { //Для каждой группы создаю класс с исходными данными для импорта шаблонов groups.ForEach(x => { var data = x.ToList(); var initData = TemplateCodeInitDataClassGenerator.GetInitDataClass(new TemplateCodeInitDataOptions { Data = data, InteractionType = data.First().Type, ResourcesClassName = resurcesName, Summary = $"Изначальные данные для триггеров группы {x.Key}", TemplateSchemaName = x.Key }); initData.CreateCSharpFileInFolder($"{directory}/InitData", new GenerateClassOptions { IncludeUsingsAndNameSpace = true }); }); }