public virtual int Count(string viewName, StaleMode mode, bool group = false, int groupLevel = 0, bool reduce = false, object[] startKey = null, object[] endKey = null, string startDocId = null, string endDocId = null ) { var view = View(viewName); if (startKey != null) { object[] key = startKey; if (key.Length == 1) { view.StartKey(key[0]); } else { view.StartKey(key); } } if (endKey != null) { object[] key = endKey; if (key.Length == 1) { view.EndKey(key[0]); } else { view.EndKey(key); } } if (!string.IsNullOrEmpty(startDocId)) { view.StartDocumentId(startDocId); } if (!string.IsNullOrEmpty(endDocId)) { view.EndDocumentId(endDocId); } if (group) { view.Group(true); } if (groupLevel > 0) { view.GroupAt(groupLevel); } view.Reduce(reduce); view.Stale(StaleMode.False); int countResult = -1; // retrieve results List <IViewRow> results = view.ToList(); if (!results.IsNullOrEmpty() && results.Count == 1) { string output = results[0].Info.Values.Last().ToString(); Int32.TryParse(output, out countResult); } return(countResult); }
public ISpatialView <T> Stale(StaleMode stale) { _stale = stale; return(this); }
public virtual Dto <T> GetDto(string viewName, StaleMode mode, int page = 0, int limit = 10, int skip = 0, bool group = false, int groupLevel = 0, bool reduce = false, object[] startKey = null, object[] endKey = null, string startDocId = null, string endDocId = null, string sort = null ) { if (limit > 1000) { limit = 1000; } var view = View(viewName); if (limit > 0) { view.Limit(limit + 1); } view.Skip(skip); if (startKey != null) { object[] key = startKey; if (key.Length == 1) { view.StartKey(key[0]); } else { view.StartKey(key); } } if (endKey != null) { object[] key = endKey; if (key.Length == 1) { view.EndKey(key[0]); } else { view.EndKey(key); } } if (!string.IsNullOrEmpty(startDocId)) { view.StartDocumentId(startDocId); } if (!string.IsNullOrEmpty(endDocId)) { view.EndDocumentId(endDocId); } if (group) { view.Group(true); } if (groupLevel > 0) { view.GroupAt(groupLevel); } if (!String.IsNullOrEmpty(sort) && sort.ToLower().Equals("desc")) { view.Descending(true); } view.Reduce(reduce); view.Stale(StaleMode.False); Dto <T> dto = new Dto <T>(); List <T> entites = new List <T>(); // retrieve results List <IViewRow> results = view.ToList(); if (!results.IsNullOrEmpty()) { int rowCount = results.Count; if (rowCount > limit) { rowCount = rowCount - 1; } for (int i = 0; i < rowCount; i++) { string docId = results[i].ItemId; if (!String.IsNullOrEmpty(docId)) { T entity = Get(docId); if (entity != null) { entity.ViewKey = BuildKey(results[i].ViewKey); entites.Add(entity); } } } } dto.Entities = entites; dto.TotalRows = view.TotalRows; dto.Page = page; dto.PageSize = limit; dto.Sort = sort; if (!results.IsNullOrEmpty()) { dto.SKey = BuildKey(results.FirstOrDefault().ViewKey); dto.SId = results.FirstOrDefault().ItemId; dto.EKey = BuildKey(results.LastOrDefault().ViewKey); dto.EId = results.LastOrDefault().ItemId; } return(dto); }
public IView <T> Stale(StaleMode mode) { this.stale = mode; return(this); }