public ActionResult Index(int?userId, string date, string sortBy, string sortOrder) { var model = new FeedIndexModel(); model.Tab = "Feed"; model.Users = DataHelper.GetUserList(); model.UserId = userId ?? 0; model.UserName = DataHelper.ToString(model.Users, model.UserId, "any user"); model.UserDisplayName = DataHelper.Clip(model.UserName, 20); model.Date = date ?? string.Empty; model.SortBy = sortBy ?? "CreatedDate"; model.SortOrder = sortOrder ?? "DESC"; model.SortableColumns.Add("CreatedDate", "Date"); model.SortableColumns.Add("Type", "Type"); model.SortableColumns.Add("UserName", "User"); var criteria = new FeedCriteria() { CreatedBy = userId, CreatedDate = new DateRangeCriteria(model.Date) }; var feeds = FeedService.FeedFetchInfoList(criteria) .AsQueryable(); feeds = feeds.OrderBy(string.Format("{0} {1}", model.SortBy, model.SortOrder)); model.Feeds = feeds; return(this.View(model)); }
public async Task<IEnumerable<Feed>> GetFeedsAsync(FeedCriteria criteria) { if (criteria == null) throw new ArgumentNullException(nameof(criteria)); using (var store = GetInitializedStore()) using (var session = store.OpenAsyncSession()) { var query = session.Query<Feed, Feed_ByLocationAndName>() .Spatial(x => x.Location, spatial => spatial.WithinRadius(criteria.Radius, criteria.Location.Latitude, criteria.Location.Longitude)); if (!String.IsNullOrWhiteSpace(criteria.FeedId)) { return await query.Where(x => String.Equals(x.Id, criteria.FeedId, StringComparison.OrdinalIgnoreCase)).ToListAsync(); } if (!String.IsNullOrWhiteSpace(criteria.FeedName)) { return await query.Where(x => x.Name.Contains(criteria.FeedName)).ToListAsync(); } return await query.ToListAsync(); } }