public override void PopulateIndexes() { Changes.AddOrUpdateRange(Cache.Keys); Parents = Cache.CreateIndex(a => a.ParentGroupFilterID ?? 0); Types = new BiDictionaryManyToMany <int, GroupFilterConditionType>(Cache.Values.ToDictionary(a => a.GroupFilterID, a => a.Types)); PostProcessFilters = new List <GroupFilter>(); }
public static List <GroupFilter> InitCache() { string t = "GroupFilter"; ServerState.Instance.CurrentSetupStatus = string.Format(JMMServer.Properties.Resources.Database_Cache, t, string.Empty); GroupFilterConditionRepository repConds = new GroupFilterConditionRepository(); GroupFilterRepository repo = new GroupFilterRepository(); List <GroupFilter> filters = repo.InternalGetAll(); Cache = new PocoCache <int, GroupFilter>(filters, a => a.GroupFilterID); Changes.AddOrUpdateRange(Cache.Keys); Parents = Cache.CreateIndex(a => a.ParentGroupFilterID ?? 0); Types = new BiDictionaryManyToMany <int, GroupFilterConditionType>(Cache.Values.ToDictionary( a => a.GroupFilterID, a => a.Types)); List <GroupFilter> recalc = new List <GroupFilter>(); foreach (GroupFilter g in Cache.Values.ToList()) { if (g.GroupFilterID != 0 && g.GroupsIdsVersion < GroupFilter.GROUPFILTER_VERSION || g.GroupConditionsVersion < GroupFilter.GROUPCONDITIONS_VERSION) { if (g.GroupConditionsVersion == 0) { g.Conditions = repConds.GetByGroupFilterID(g.GroupFilterID); } repo.Save(g, true); recalc.Add(g); } } return(recalc); }
internal override void ClearIndexes() { Parents = null; Types = null; }
internal override void PopulateIndexes() { Parents = Cache.CreateIndex(a => a.ParentGroupFilterID ?? 0); Types = new BiDictionaryManyToMany <int, GroupFilterConditionType>(Cache.Values.ToDictionary(a => a.GroupFilterID, a => a.Types)); }