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, }; }
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); }
internal static bool HasDefaultTemplateConstructor(SMSModelEntity smsModelEntity) { SMSModelInfo info = registeredModels.GetOrThrow(smsModelEntity.ToType()); return(info.DefaultTemplateConstructor != null); }