示例#1
0
        public string Map(string categoryName, string counterName, string source, string instance, string extData)
        {
            CounterCategoryInfo catInfo      = GetOrCreateCategoryInfo(categoryName);
            CounterNameInfo     nameInfo     = catInfo.GetOrCreateNameInfo(counterName);
            CounterSourceInfo   sourceInfo   = nameInfo.GetOrCreateSourceInfo(source);
            CounterInstanceInfo instanceInfo = nameInfo.GetOrCreateInstanceInfo(instance);
            CounterExtDataInfo  extDataInfo  = nameInfo.GetOrCreateExtDataInfo(extData);

            return(string.Join("/", sourceInfo.Id, instanceInfo.Id, extDataInfo.Id));
        }
        public CounterNameInfo GetMappedCounterNameInfo(int counterNameId)
        {
            CounterNameInfo nameInfo = _cache.FindById(counterNameId);

            if (nameInfo == null)
            {
                UpdateCache();
                nameInfo = _cache.FindById(counterNameId);
            }
            return(nameInfo);
        }
        public CounterNameInfo GetOrCreateNameInfo(string name)
        {
            CounterNameInfo nameInfo = _cache.FindByName(name);

            if (nameInfo == null)
            {
                this.UpdateCache();
                nameInfo = _cache.FindByName(name) ?? this.CreateNew(name);
            }
            return(nameInfo);
        }
        public void SaveCounterName(int parentCategoryId, CounterNameInfo nameInfo)
        {
            MongoCollection <BsonDocument> items = Database.GetCollection("countersInfo");
            IMongoQuery   q = Query.EQ("id", parentCategoryId);
            UpdateBuilder u = new UpdateBuilder();

            u.AddToSet("counters", new BsonDocument {
                { "name", nameInfo.Name }, { "id", nameInfo.Id }
            });
            u.Set("c" + nameInfo.Id, new BsonDocument
            {
                { "sources", new BsonArray() },
                { "instances", new BsonArray() },
                { "extDatas", new BsonArray() }
            });
            items.Update(q, u, UpdateFlags.Upsert, SafeMode.True);
        }
示例#5
0
 private static DateTime GetLastProcessedDateForCounter(CounterCategoryInfo counterCategoryInfo, CounterNameInfo counterNameInfo)
 {
     if (_lastDates.ContainsKey(counterCategoryInfo.Name + "." + counterNameInfo.Name))
     {
         return(_lastDates[counterCategoryInfo.Name + "." + counterNameInfo.Name]);
     }
     else
     {
         return(DateTime.MinValue);
     }
 }