コード例 #1
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);
        }
コード例 #2
0
        static void EmailTemplateLogic_Retrieved(EmailTemplateEntity emailTemplate)
        {
            using (emailTemplate.DisableAuthorization ? ExecutionMode.Global() : null)
            {
                object           queryName   = QueryLogic.ToQueryName(emailTemplate.Query.Key);
                QueryDescription description = QueryLogic.Queries.QueryDescription(queryName);

                using (emailTemplate.DisableAuthorization ? ExecutionMode.Global() : null)
                    emailTemplate.ParseData(description);
            }
        }
コード例 #3
0
        public static EmailTemplateEntity ParseData(this EmailTemplateEntity emailTemplate)
        {
            if (!emailTemplate.IsNew || emailTemplate.queryName == null)
            {
                throw new InvalidOperationException("emailTemplate should be new and have queryName");
            }

            emailTemplate.Query = QueryLogic.GetQueryEntity(emailTemplate.queryName);

            QueryDescription description = QueryLogic.Queries.QueryDescription(emailTemplate.queryName);

            emailTemplate.ParseData(description);

            return(emailTemplate);
        }
コード例 #4
0
        internal static EmailTemplateEntity CreateDefaultTemplate(SystemEmailEntity systemEmail)
        {
            SystemEmailInfo info = systemEmails.GetOrThrow(systemEmailToType.Value.GetOrThrow(systemEmail));

            EmailTemplateEntity template = info.DefaultTemplateConstructor();

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

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

            template.SystemEmail = systemEmail;
            template.Query       = QueryLogic.GetQueryEntity(info.QueryName);

            template.ParseData(DynamicQueryManager.Current.QueryDescription(info.QueryName));

            return(template);
        }