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
                })
            });
        }
示例#2
0
        /// <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
                });
            });
        }