Exemple #1
0
        public List <Lite <EmailTemplateEntity> > GetEmailTemplates(string queryKey, EmailTemplateVisibleOn visibleOn, [Required, FromBody] GetEmailTemplatesRequest request)
        {
            object queryName = QueryLogic.ToQueryName(queryKey);

            var entity = request.lite?.RetrieveAndForget();

            return(EmailTemplateLogic.GetApplicableEmailTemplates(queryName, entity, visibleOn));
        }
Exemple #2
0
        public List <Lite <EmailTemplateEntity> > GetWordTemplates(string queryKey, EmailTemplateVisibleOn visibleOn, Lite <Entity> lite)
        {
            object queryName = QueryLogic.ToQueryName(queryKey);

            var entity = lite?.RetrieveAndForget();

            return(EmailTemplateLogic.GetApplicableEmailTemplates(queryName, entity, visibleOn));
        }
Exemple #3
0
        public static bool IsVisible(EmailTemplateEntity et, EmailTemplateVisibleOn visibleOn)
        {
            if (et.Model == null)
            {
                return(visibleOn == EmailTemplateVisibleOn.Single);
            }

            if (EmailModelLogic.HasDefaultTemplateConstructor(et.Model))
            {
                return(false);
            }

            var entityType = EmailModelLogic.GetEntityType(et.Model.ToType());

            if (entityType.IsEntity())
            {
                return(visibleOn == EmailTemplateVisibleOn.Single);
            }

            var should = VisibleOnDictionary.TryGet(entityType, EmailTemplateVisibleOn.Single);

            return((should & visibleOn) != 0);
        }
Exemple #4
0
        public static List <Lite <EmailTemplateEntity> > GetApplicableEmailTemplates(object queryName, Entity?entity, EmailTemplateVisibleOn visibleOn)
        {
            var isAllowed = Schema.Current.GetInMemoryFilter <EmailTemplateEntity>(userInterface: true);

            return(TemplatesByQueryName.Value.TryGetC(queryName).EmptyIfNull()
                   .Where(a => isAllowed(a) && IsVisible(a, visibleOn))
                   .Where(a => a.IsApplicable(entity))
                   .Select(a => a.ToLite())
                   .ToList());
        }