示例#1
0
 public static void RegisterEmailModel(Type model, Func <EmailTemplateEntity>?defaultTemplateConstructor, object?queryName = null)
 {
     registeredModels[model] = new EmailModelInfo(queryName ?? GetEntityType(model))
     {
         DefaultTemplateConstructor = defaultTemplateConstructor,
     };
 }
示例#2
0
        internal static EmailTemplateEntity CreateDefaultTemplate(EmailModelEntity emailModel)
        {
            EmailModelInfo info = registeredModels.GetOrThrow(entityToType.Value.GetOrThrow(emailModel));

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

            EmailTemplateEntity template = info.DefaultTemplateConstructor.Invoke();

            if (template.MasterTemplate != null)
            {
                template.MasterTemplate = EmailMasterTemplateLogic.GetDefaultMasterTemplate();
            }

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

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

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

            return(template);
        }
示例#3
0
        public static void RegisterEmailModel(Type model, Func <EmailTemplateEntity>?defaultTemplateConstructor, object?queryName = null)
        {
            if (defaultTemplateConstructor == null)
            {
                throw new ArgumentNullException(nameof(defaultTemplateConstructor));
            }

            registeredModels[model] = new EmailModelInfo(queryName ?? GetEntityType(model))
            {
                DefaultTemplateConstructor = defaultTemplateConstructor,
            };
        }
示例#4
0
        internal static bool HasDefaultTemplateConstructor(EmailModelEntity emailModelEntity)
        {
            EmailModelInfo info = registeredModels.GetOrThrow(emailModelEntity.ToType());

            return(info.DefaultTemplateConstructor != null);
        }