Beispiel #1
0
        public List <CounterRecord> GetCounterRecords(string name, string groupID, int start = 0, int end = -1)
        {
            string query = TableQuery.CombineFilters(
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, ToRecordPK(groupID, name)),
                TableOperators.And,
                TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThanOrEqual, ToRecordRK(start))
                );

            if (end > 0)
            {
                query = TableQuery.CombineFilters(
                    query,
                    TableOperators.And,
                    TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThanOrEqual, ToRecordRK(end))
                    );
            }

            TableQuery <DynamicTableEntity> q       = new TableQuery <DynamicTableEntity>().Where(query);
            List <CounterRecord>            records = new List <CounterRecord>();

            foreach (var entity in _counterRecord.ExecuteQuery(q))
            {
                records.Add(CounterRecordHelper.ParseEntity(entity));
            }
            return(records);
        }
Beispiel #2
0
        private Dictionary <string, List <int> > SearchWordsIndex(string keyword, DateTime lastSearchDate)
        {
            string query = GenerateWordIndexConditionQuery(keyword, lastSearchDate);

            TableQuery <WordIndexEntity> tableQuery = new TableQuery <WordIndexEntity>().Where(query);
            var queryResult = _wordsIndexTable.ExecuteQuery <WordIndexEntity>(tableQuery);

            Dictionary <string, List <int> > ret = new Dictionary <string, List <int> >();

            foreach (var entity in queryResult)
            {
                var msgid   = entity.GetMessage().ToMessageString();
                var poslist = entity.GetPostionsList();

                if (ret.ContainsKey(msgid))
                {
                    var l = ret[msgid];
                    ret[msgid] = l.Union(poslist).ToList();
                }
                else
                {
                    ret.Add(msgid, poslist);
                }
            }

            return(ret);
        }
Beispiel #3
0
        //public List<Reply> GetReplyNotif(string userid)
        //{
        //    TableQuery<ReplyNotificationEntifity> query = new TableQuery<ReplyNotificationEntifity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, userid));

        //    List<Reply> replies = new List<Reply>();
        //    TableBatchOperation batchOperation = new TableBatchOperation();
        //    int count = 0;

        //    // Print the fields for each customer.
        //    foreach (ReplyNotificationEntifity entity in _replyNotification.ExecuteQuery(query))
        //    {
        //        replies.Add(JsonConvert.DeserializeObject<Reply>(entity.Content));

        //        batchOperation.Add(TableOperation.Delete(entity));
        //        count++;

        //        if((count % 100) == 0){
        //            _replyNotification.ExecuteBatch(batchOperation);
        //            batchOperation = new TableBatchOperation();
        //            count = 0;
        //        }
        //    }

        //    if (count > 0)
        //    {
        //        _replyNotification.ExecuteBatch(batchOperation);
        //    }

        //    return replies;
        //}

        public List <Reply> GetAllReply(string userid)
        {
            TableQuery <BaseReplyEntity> query = new TableQuery <BaseReplyEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, userid));
            List <Reply> replies = new List <Reply>();

            foreach (BaseReplyEntity entity in _replyArchive.ExecuteQuery(query))
            {
                replies.Add(entity.ToReply());
            }
            //replies.Reverse();
            return(replies);
        }
Beispiel #4
0
        public List <Reply> GetAllReplies(string msgID)
        {
            TableQuery <BaseReplyEntity> query = new TableQuery <BaseReplyEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, msgID));

            List <Reply> replies = new List <Reply>();

            // Print the fields for each customer.
            foreach (BaseReplyEntity entity in _reply.ExecuteQuery(query))
            {
                replies.Add(entity.ToReply());
            }
            return(replies);
        }
Beispiel #5
0
        public List <CounterSet> GetCounterSetByGroup(string groupID)
        {
            TableQuery <CounterSetEntity> query = new TableQuery <CounterSetEntity>().Where(
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, groupID)
                );

            List <CounterSet> counterSets = new List <CounterSet>();

            foreach (var entity in _counterSet.ExecuteQuery(query))
            {
                counterSets.Add(entity);
            }
            return(counterSets);
        }
Beispiel #6
0
        public List <MetricRecord> RetriveDataRecord(int id, int startIndex, int endIndex)
        {
            List <MetricRecord> result = new List <MetricRecord>();

            startIndex = startIndex < 0 ? 0 : startIndex;
            if (endIndex < startIndex)
            {
                return(result);
            }

            string query = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, id.ToString());

            query = TableQuery.CombineFilters(
                query,
                TableOperators.And,
                TableQuery.GenerateFilterCondition(
                    "RowKey",
                    QueryComparisons.GreaterThanOrEqual,
                    ((startIndex / MetricEntity.MaxMetricRecord) * MetricEntity.MaxMetricRecord).ToString(RowKeyFormat))
                );

            query = TableQuery.CombineFilters(
                query,
                TableOperators.And,
                TableQuery.GenerateFilterCondition(
                    "RowKey",
                    QueryComparisons.LessThanOrEqual,
                    ((endIndex / MetricEntity.MaxMetricRecord) * MetricEntity.MaxMetricRecord).ToString(RowKeyFormat))
                );

            TableQuery <DynamicTableEntity> rangeQuery = new TableQuery <DynamicTableEntity>().Where(query);

            foreach (DynamicTableEntity entity in _metricData.ExecuteQuery(rangeQuery))
            {
                MetricEntity mentity = new MetricEntity(entity);
                int          offset  = int.Parse(entity.RowKey);
                int          index;
                for (int i = 0; i < mentity.Count; i++)
                {
                    index = offset + i;
                    if (index >= startIndex && index <= endIndex)
                    {
                        result.Add(mentity.Get(i));
                    }
                }
            }

            return(result);
        }
Beispiel #7
0
        public List <Message> EventLine(string eventID)
        {
            string query = GenerateStartWithConditionQuery(System.Web.HttpUtility.UrlEncode(eventID) + "_");

            TableQuery <BaseMessageEntity> rangeQuery = new TableQuery <BaseMessageEntity>().Where(query);

            List <Message> msgs = new List <Message>();

            foreach (BaseMessageEntity entity in _eventline.ExecuteQuery(rangeQuery))
            {
                //var msg = JsonConvert.DeserializeObject<Message>(entity.Content);
                msgs.Add(entity.ToMessage());
            }
            return(msgs);
        }