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); }
private static SMSTemplateEntity GetDefaultTemplate(SMSModelEntity smsModelEntity) { var isAllowed = Schema.Current.GetInMemoryFilter <SMSTemplateEntity>(userInterface: false); var templates = SMSModelToTemplates.Value.TryGetC(smsModelEntity.ToLite()).EmptyIfNull(); if (templates.IsNullOrEmpty()) { using (ExecutionMode.Global()) using (OperationLogic.AllowSave <SMSTemplateEntity>()) using (Transaction tr = Transaction.ForceNew()) { var template = CreateDefaultTemplate(smsModelEntity); template.Save(); return(tr.Commit(template)); } } templates = templates.Where(isAllowed); return(templates.Where(t => t.IsActive).SingleEx(() => "Active EmailTemplates for SystemEmail {0}".FormatWith(smsModelEntity))); }
public static ISMSModel CreateModel(SMSModelEntity model, ModifiableEntity?entity) { return((ISMSModel)SMSModelLogic.GetEntityConstructor(model.ToType()).Invoke(new[] { entity })); }
internal static bool HasDefaultTemplateConstructor(SMSModelEntity smsModelEntity) { SMSModelInfo info = registeredModels.GetOrThrow(smsModelEntity.ToType()); return(info.DefaultTemplateConstructor != null); }
public static bool RequiresExtraParameters(SMSModelEntity smsModelEntity) { return(GetEntityConstructor(entityToType.Value.GetOrThrow(smsModelEntity)) == null); }
public static Type ToType(this SMSModelEntity smsModelEntity) { return(entityToType.Value.GetOrThrow(smsModelEntity, "The SMSModel {0} was not registered")); }