コード例 #1
0
ファイル: WordController.cs プロジェクト: zeevir/extensions
        public List<Lite<WordTemplateEntity>> GetWordTemplates(string queryKey, WordTemplateVisibleOn visibleOn, [Required, FromBody]GetWordTemplatesRequest request)
        {
            object type = QueryLogic.ToQueryName(queryKey);

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

            return WordTemplateLogic.GetApplicableWordTemplates(type, entity, visibleOn);
        }
コード例 #2
0
        public List <Lite <WordTemplateEntity> > GetWordTemplates(string queryKey, WordTemplateVisibleOn visibleOn, Lite <Entity> lite)
        {
            object type = QueryLogic.ToQueryName(queryKey);

            var entity = lite?.RetrieveAndForget();

            return(WordTemplateLogic.GetApplicableWordTemplates(type, entity, visibleOn));
        }
コード例 #3
0
        public static void Start(IApplicationBuilder app)
        {
            TypeHelpServer.Start(app);
            SignumControllerFactory.RegisterArea(MethodInfo.GetCurrentMethod());

            TemplatingServer.Start(app);

            CustomizeFiltersModel();

            EntityPackTS.AddExtension += ep =>
            {
                if (ep.entity.IsNew || !WordTemplatePermission.GenerateReport.IsAuthorized())
                {
                    return;
                }

                var wordTemplates = WordTemplateLogic.TemplatesByEntityType.Value.TryGetC(ep.entity.GetType());
                if (wordTemplates != null)
                {
                    var applicable = wordTemplates.Where(a => a.IsApplicable(ep.entity));
                    if (applicable.HasItems())
                    {
                        ep.extension.Add("wordTemplates", applicable.Select(a => a.ToLite()).ToList());
                    }
                }
            };

            QueryDescriptionTS.AddExtension += qd =>
            {
                object type = QueryLogic.ToQueryName(qd.queryKey);
                if (Schema.Current.IsAllowed(typeof(WordTemplateEntity), true) == null)
                {
                    var templates = WordTemplateLogic.GetApplicableWordTemplates(type, null, WordTemplateVisibleOn.Query);

                    if (templates.HasItems())
                    {
                        qd.Extension.Add("wordTemplates", templates);
                    }
                }
            };

            EntityJsonConverter.AfterDeserilization.Register((WordTemplateEntity uq) =>
            {
                if (uq.Query != null)
                {
                    var qd = QueryLogic.Queries.QueryDescription(uq.Query.ToQueryName());
                    uq.ParseData(qd);
                }
            });
        }
コード例 #4
0
        public static void Start(HttpConfiguration config)
        {
            SignumControllerFactory.RegisterArea(MethodInfo.GetCurrentMethod());

            ReflectionServer.RegisterLike(typeof(TemplateTokenMessage));

            CustomizeFiltersModel();

            EntityPackTS.AddExtension += ep =>
            {
                if (ep.entity.IsNew || !WordTemplatePermission.GenerateReport.IsAuthorized())
                {
                    return;
                }

                var wordTemplates = WordTemplateLogic.TemplatesByEntityType.Value.TryGetC(ep.entity.GetType());
                if (wordTemplates != null)
                {
                    var applicable = wordTemplates.Where(a => a.IsApplicable(ep.entity));
                    if (applicable.HasItems())
                    {
                        ep.Extension.Add("wordTemplates", applicable.Select(a => a.ToLite()).ToList());
                    }
                }
            };

            QueryDescriptionTS.AddExtension += qd =>
            {
                object type      = QueryLogic.ToQueryName(qd.queryKey);
                var    templates = WordTemplateLogic.GetApplicableWordTemplates(type, null, WordTemplateVisibleOn.Query);

                if (templates.HasItems())
                {
                    qd.Extension.Add("wordTemplates", templates);
                }
            };
        }