Exemple #1
0
 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);
        }
Exemple #3
0
 internal override void ClearIndexes()
 {
     Parents = null;
     Types   = null;
 }
Exemple #4
0
 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));
 }