Exemple #1
0
        public static void EnsureFromCache()
        {
            DictionaryOfLineObjectCollection dlocSource = DatabaseCache.Instance.AllObjects;
            DictionaryOfLineObjectCollection dlocTarget = LineSr.Instance.AllObjects;

            MergeCollections <TimeTypeLn>(dlocSource, dlocTarget);
            MergeCollections <ScoreTypeLn>(dlocSource, dlocTarget);
            MergeCollections <BetTypeLn>(dlocSource, dlocTarget);
            MergeCollections <BetDomainTypeLn>(dlocSource, dlocTarget);

            MergeCollections <TaggedStringLn>(dlocSource, dlocTarget);

            ILineObjectCollection <GroupLn> locGroups = dlocSource.GetLineObjectCollection <GroupLn>();
            SyncList <GroupLn> lGroups = locGroups.ToSyncList();

            lGroups.Sort(delegate(GroupLn g1, GroupLn g2)
            {
                long lParentGroupId1 = g1.ParentGroupId.Value ?? 0;
                long lParentGroupId2 = g2.ParentGroupId.Value ?? 0;

                if (lParentGroupId1 == lParentGroupId2)
                {
                    return(g1.GroupId.CompareTo(g2.GroupId));
                }

                return(lParentGroupId1.CompareTo(lParentGroupId2));
            });

            MergeCollections <GroupLn>(lGroups, dlocTarget);
            MergeCollections <CompetitorLn>(dlocSource, dlocTarget);
            MergeCollections <CompetitorToOutrightLn>(dlocSource, dlocTarget);
            MergeCollections <MatchLn>(dlocSource, dlocTarget);
            MergeCollections <LiveMatchInfoLn>(dlocSource, dlocTarget);
            MergeCollections <MatchToGroupLn>(dlocSource, dlocTarget);
            MergeCollections <BetDomainLn>(dlocSource, dlocTarget);
            MergeCollections <OddLn>(dlocSource, dlocTarget);
            MergeCollections <MatchResultLn>(dlocSource, dlocTarget);
            MergeCollections <ResourceRepositoryLn>(dlocSource, dlocTarget);
            MergeCollections <ResourceAssignmentLn>(dlocSource, dlocTarget);
            MergeCollections <CompetitorInfosLn>(dlocSource, dlocTarget);
            MergeCollections <MatchInfosLn>(dlocSource, dlocTarget);
            MergeCollections <TournamentInfosLn>(dlocSource, dlocTarget);
            MergeCollections <LiabilityLn>(dlocSource, dlocTarget);
            MergeCollections <LanguageLn>(dlocSource, dlocTarget);
            MergeCollections <TournamentMatchLocksLn>(dlocSource, dlocTarget);

            LineSr.Instance.NewOrChangedObjects.UnsetPropertiesChanged();
            LineSr.Instance.NewOrChangedObjects.Clear();
            LineSr.Instance.ObjectsToRemove.Clear();
        }
Exemple #2
0
        private static void LineObjectCollectionToSerializableObjectList <T>(LineContainer lc, ILineObjectCollection <T> locObjects) where T : ILineObject <T>
        {
            string sObjectListName = LineContainer.ContentTypeToObjectListName(typeof(T));

            SyncList <T>           lObjects             = locObjects.ToSyncList();
            SerializableObjectList lSerializableObjects = lc.Objects.EnsureSerializableObjectList(typeof(T), sObjectListName);

            foreach (T objSource in lObjects)
            {
                try
                {
                    ISerializableObject so = objSource.Serialize();

                    lSerializableObjects.Add(so);
                }
                catch (Exception excp)
                {
                    m_logger.Excp(excp, "ToLineContainer() ERROR. Could not add serializable object for {0}", objSource);
                }
            }

            Thread.Sleep(1);
        }
Exemple #3
0
        private static void MergeCollections <T>(DictionaryOfLineObjectCollection dlocSource, DictionaryOfLineObjectCollection dlocTarget) where T : ILineObject <T>
        {
            ILineObjectCollection <T> loc = dlocSource.GetLineObjectCollection <T>();

            MergeCollections <T>(loc.ToSyncList(), dlocTarget);
        }