public async Task getNearbyToilets(ParseGeoPoint location, Boolean shouldSkip) { if (currentLocation.Latitude != location.Latitude || currentLocation.Longitude != location.Longitude) { //New location, so empty data _parseToilets.Clear(); currentLocation = location; } var query = new ParseQuery<Toilet>(); query = query.WhereNear("Location", location); query = query.Limit(20); if (shouldSkip) { query = query.Skip(skipCount); skipCount += 20; } IEnumerable<Toilet> result = await query.FindAsync(); if (shouldSkip) { result.ToList().ForEach(_parseToilets.Add); } else { _parseToilets.Clear(); result.ToList().ForEach(_parseToilets.Add); } foreach (Toilet toilet in _parseToilets) { toilet.searchLocationPoint = location; } }
public async Task<IEnumerable<ITag>> FindTags(string searchQuery, int pageSize, int offset) { using (var tokenSource = new CancellationTokenSource(Constants.FindTagsTimeout)) { var parseQuery = new ParseQuery<ParseTag>().Where(t => t.Text.StartsWith(searchQuery.Trim())).OrderBy(t => t.Text); if (pageSize > 0 && offset >= 0) { parseQuery = parseQuery.Limit(pageSize).Skip(offset); } var result = await parseQuery.FindAsync(tokenSource.Token).ConfigureAwait(false); return result.Select(s => new Tag(s) as ITag); } }
public async Task<IEnumerable<ITag>> FetchTags(int pageSize, int offset) { using (var tokenSource = new CancellationTokenSource(Constants.FetchTagsTimeout)) { var query = new ParseQuery<ParseTag>().OrderBy(p => p.Text); if (pageSize > 0 && offset >= 0) { query = query.Limit(pageSize).Skip(offset); } var result = await query.FindAsync(tokenSource.Token).ConfigureAwait(false); return result.Select(p => new Tag(p) as ITag); } }
public async Task<IEnumerable<IProduct>> FetchStoreProducts(string storeID, int pageSize, int offset, bool includeInvisible = false) { using (var tokenSource = new CancellationTokenSource(Constants.FetchProductsTimeout)) { var store = ParseObject.CreateWithoutData<ParseStore>(storeID); var query = new ParseQuery<ParseProduct>().Where(p => p.Store == store).OrderBy(p => p.LowercaseName); query = addProductIncludedFields(query); if (!includeInvisible) { query = addProductVisibilityConditions(query); } if (pageSize > 0 && offset >= 0) { query = query.Limit(pageSize).Skip(offset); } var result = await query.FindAsync(); return result.Select(p => new Product(p) as IProduct); } }