Example #1
0
        } //method

        public static EntityFilter ParseFilter(string listFilter, EntityInfo entity, IActivationLog log)
        {
            //Safely parse template - parse throws exc
            StringTemplate template;

            try {
                template = StringTemplate.Parse(listFilter);
            } catch (Exception ex) {
                log.Error(entity.Name + ", error in list filter: " + ex.Message);
                return(null);
            }
            // map names to members
            var members = new List <EntityMemberInfo>();

            foreach (var name in template.ArgNames)
            {
                var member = entity.FindMemberOrColumn(name);
                if (member == null)
                {
                    log.Error("Entity {0}, error in filter expression, member/column {1} not found. ", entity.Name, name);
                }
                else
                {
                    members.Add(member);
                }
            }
            return(new EntityFilter()
            {
                Template = template, Members = members
            });
        }
        public void Test_CachedTemplate()
        {
            var t1 = StringTemplate.Parse("{X}");
            var t2 = StringTemplate.Parse("{X}");

            Assert.Same(t1, t2);
        }
        public void Test_ClearCached()
        {
            var t1 = StringTemplate.Parse("{X}");

            StringTemplate.ClearCache();
            var t2 = StringTemplate.Parse("{X}");

            Assert.NotSame(t1, t2);
        }
Example #4
0
        }     //method

        private EntityFilter ParseIndexFilter(string filterSql, EntityInfo entity)
        {
            // The filter coming from database has references to column names (without braces like {colName})
            // The filter in Index attribute references entity members using {..} notation.
            // Technically we should try to convert filter from db into attribute form, but we don't; maybe later
            var entFilter = new EntityFilter()
            {
                Template = StringTemplate.Parse(filterSql)
            };

            return(entFilter);
        }
        public void ToString_Should_Return_Template()
        {
            StringTemplate testStringTemplate = StringTemplate.Parse("test");

            Assert.Equal("test", testStringTemplate.ToString());
        }