示例#1
0
        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));
        }
示例#2
0
        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();
            }
        }