public override List<Relation> GetAllRelations(string rule) { List<Relation> allRelations = GetAllRelations(); Timer timer = new Timer("Starting query GetAllRelation for rule '" + rule + "'"); var relationQuery = (from relations in allRelations where (relations.RuleName == rule) select relations); List<Relation> result = relationQuery.ToList(); timer.Stop(); return result; }
public override List<Relation> GetRelationsForPage(int pageID, Rule rule, Rule.Direction direction) { List<Relation> allRelations = GetAllRelations(); string cacheKey = GetCacheKey(pageID, rule.RuleName, direction); List<Relation> relationsForPage = (GetFromCache(cacheKey)) as List<Relation>; if (relationsForPage != null) return relationsForPage; Timer timer = new Timer("Query GetRelatedRelations for rule '" + rule.RuleName + "' with page " + pageID); switch (direction) { case Rule.Direction.Both: return GetRelationsForPage(pageID, rule); case Rule.Direction.Left: var pageTypeQueryLeft = (from relations in allRelations where (relations.RuleName == rule.RuleName && (relations.PageIDLeft == pageID)) select relations); relationsForPage = pageTypeQueryLeft.ToList(); break; case Rule.Direction.Right: var pageTypeQueryRight = (from relations in allRelations where (relations.RuleName == rule.RuleName && (relations.PageIDRight == pageID)) select relations); relationsForPage = pageTypeQueryRight.ToList(); break; } timer.Stop(); ValidationFilter(relationsForPage); StoreInCache(cacheKey, relationsForPage); return relationsForPage; }
public override List<Relation> GetRelationsForPage(int pageID) { string cacheKey = GetCacheKey(pageID, "", Rule.Direction.Both); List<Relation> relationsForPage = (GetFromCache(cacheKey)) as List<Relation>; if (relationsForPage != null) return relationsForPage; Timer timer = new Timer("Query GetRelatedRelations with page " + pageID); var pageTypeQuery = (from relations in RelationDataStore.Items<Relation>() where (relations.PageIDLeft == pageID || relations.PageIDRight == pageID) select relations); relationsForPage = pageTypeQuery.ToList(); StoreInCache(cacheKey, relationsForPage); timer.Stop(); return relationsForPage; }
public override List<Relation> GetRelationsForPage(int pageID, Rule rule) { List<Relation> allRelations = GetAllRelations(); Timer timer = new Timer("Query GetRelatedRelations for rule '" + rule.RuleName + "' with page " + pageID); var pageTypeQuery = (from relations in RelationDataStore.Items<Relation>() where (relations.RuleName == rule.RuleName && (relations.PageIDLeft == pageID || relations.PageIDRight == pageID)) select relations); List<Relation> relationsForPage = pageTypeQuery.ToList(); timer.Stop(); ValidationFilter(relationsForPage); return relationsForPage; }
public override Relation GetRelation(string rule, int pageLeft, int pageRight) { List<Relation> allRelations = GetAllRelations(); Timer timer = new Timer("Starting query GetRelation for rule '" + rule + "' with pages " + pageLeft.ToString() + " and " + pageRight.ToString()); var pageTypeQuery = (from relations in allRelations where (relations.RuleName == rule && (relations.PageIDLeft == pageLeft && relations.PageIDRight == pageRight) || (relations.PageIDLeft == pageRight && relations.PageIDRight == pageLeft)) select relations); List<Relation> existingRelations = pageTypeQuery.ToList(); timer.Stop(); if (existingRelations != null && existingRelations.Count > 0) return existingRelations.First<Relation>(); else return new Relation(); }