public LMSresult GetList(string m) { var client = GetDocumentClient(true); long end = 0; var n = 0; List<PostMessage> items = new List<PostMessage>(); while (items.Count < 5 && n < 6) { end = (long) (DateTime.UtcNow.AddMinutes(-30*n).Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds; var path = m.Split('/'); /* items = client.CreateDocumentQuery<PostMessage>(documentCollection.DocumentsLink, "SELECT d AS data " + "FROM Doc d " + "Where d.Type='Post' And d.Info.timestamp > '" + time + "'").OrderBy(o=>o.Info.timestamp).ToList();*/ /* items = (from f in client.CreateDocumentQuery<PostMessage>(_database.SelfLink) where f.Type == "Post" && f.Info.timestamp > end select f).OrderBy(o => o.Info.timestamp).ToList();*/ items = client.CreateDocumentQuery<PostMessage>(_dataSelfLink, new FeedOptions {MaxItemCount = 2000}) .Where(f => f.Type == "Post" && f.Info.timestamp > end) .OrderBy(o => o.Info.timestamp).ToList(); n++; } var res = new LMSresult { time = end, list = items }; return res; }
public LMSresult GetMoreList(string m, long start) { var client = GetDocumentClient(true); var t = (long) (DateTime.UtcNow.AddMonths(-1).Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds; List<PostMessage> items = new List<PostMessage>(); var t1 = DateTime.Now; var n = 1; var i = 1; var end = start; while (items.Count < 5 && end > t) { i = i + n; end = end - (long) TimeSpan.FromHours(i).TotalMilliseconds; var path = m.Split('/'); /* items = client.CreateDocumentQuery<PostMessage>(documentCollection.DocumentsLink, "SELECT d AS data " + "FROM Doc d " + "Where d.Type='Post' And d.Info.timestamp > '" + t2 + "'" + "And d.Info.timestamp < '" + t1 + "'").ToList();*/ /* items = (from f in client.CreateDocumentQuery<PostMessage>(_database.SelfLink) where f.Type == "Post" && f.Info.timestamp < start && f.Info.timestamp > end select f).OrderBy(o => o.Info.timestamp).ToList();*/ items = client.CreateDocumentQuery<PostMessage>(_dataSelfLink) .Where(f => f.Type == "Post" && f.Info.timestamp < start && f.Info.timestamp > end) .OrderBy(o => o.Info.timestamp).ToList(); var t2 = DateTime.Now; if (t2 - t1 > TimeSpan.FromSeconds(10)) { return new LMSresult { moreData = true, time = end, list = items }; } n++; } var res = new LMSresult { moreData = false, time = end, list = items }; return res; }