} //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); }
} //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()); }