コード例 #1
0
ファイル: ObjectIndexer.cs プロジェクト: pawels17/MUTDOD
        internal void AddDynamicRoles(int IndexID, IIndex <T> index, Oid[] obj, DynamicRole role, String[] attributes)
        {
            IndexData indexStorage = IndexStorageManager.IndexStorageManager <T> .GetIndexData(IndexID);

            try
            {
                foreach (Oid oid in obj)
                {
                    DateTime indexStart = DateTime.Now;
                    indexStorage = index.AddDynamicRole(indexStorage ?? index.EmptyIndexData, oid, role, attributes);
                    IndexManager.IndexManager <T> .GetInstance().includeInStatistics(IndexID,
                                                                                     IndexCostInformation.OneRoleIndexing,
                                                                                     (float)
                                                                                     (DateTime.Now.Ticks - indexStart.Ticks) /
                                                                                     10000000);
                }
            }
            catch (Exception ex)
            {
                if (MUTDOD.Server.Common.IndexMechanism.IndexMechanism <T> .GetLoger() != null)
                {
                    MUTDOD.Server.Common.IndexMechanism.IndexMechanism <T> .GetLoger()
                    .Log("IndexMechanism", string.Format("Index {0} throwed exception\n{1}", index.GetType(), ex),
                         MessageLevel.Error);
                }
                throw ex;
            }
            IndexStorageManager.IndexStorageManager <T> .UpdateIndexData(IndexID, indexStorage);
        }