Exemple #1
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);
        }
Exemple #2
0
        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)));
        }
Exemple #3
0
 public static ISMSModel CreateModel(SMSModelEntity model, ModifiableEntity?entity)
 {
     return((ISMSModel)SMSModelLogic.GetEntityConstructor(model.ToType()).Invoke(new[] { entity }));
 }
Exemple #4
0
        internal static bool HasDefaultTemplateConstructor(SMSModelEntity smsModelEntity)
        {
            SMSModelInfo info = registeredModels.GetOrThrow(smsModelEntity.ToType());

            return(info.DefaultTemplateConstructor != null);
        }
Exemple #5
0
 public static bool RequiresExtraParameters(SMSModelEntity smsModelEntity)
 {
     return(GetEntityConstructor(entityToType.Value.GetOrThrow(smsModelEntity)) == null);
 }
Exemple #6
0
 public static Type ToType(this SMSModelEntity smsModelEntity)
 {
     return(entityToType.Value.GetOrThrow(smsModelEntity, "The SMSModel {0} was not registered"));
 }