示例#1
0
        public static void RegisterSMSModel(Type model, Func <SMSTemplateEntity> defaultTemplateConstructor, object?queryName = null)
        {
            if (defaultTemplateConstructor == null)
            {
                throw new ArgumentNullException(nameof(defaultTemplateConstructor));
            }

            registeredModels[model] = new SMSModelInfo(queryName ?? GetEntityType(model))
            {
                DefaultTemplateConstructor = defaultTemplateConstructor,
            };
        }
示例#2
0
        internal static SMSTemplateEntity CreateDefaultTemplate(SMSModelEntity smsModel)
        {
            SMSModelInfo info = registeredModels.GetOrThrow(entityToType.Value.GetOrThrow(smsModel));

            if (info.DefaultTemplateConstructor == null)
            {
                throw new InvalidOperationException($"No EmailTemplate for {smsModel} found and DefaultTemplateConstructor = null");
            }

            SMSTemplateEntity template = info.DefaultTemplateConstructor.Invoke();

            if (template.Name == null)
            {
                template.Name = smsModel.FullClassName;
            }

            template.Model = smsModel;
            template.Query = QueryLogic.GetQueryEntity(info.QueryName);

            template.ParseData(QueryLogic.Queries.QueryDescription(info.QueryName));

            return(template);
        }
示例#3
0
        internal static bool HasDefaultTemplateConstructor(SMSModelEntity smsModelEntity)
        {
            SMSModelInfo info = registeredModels.GetOrThrow(smsModelEntity.ToType());

            return(info.DefaultTemplateConstructor != null);
        }