示例#1
0
        public SearchResultViewModel <NotificationDto> Search(NotificationListViewCriteria criteria)
        {
            var notifications = this.entityRepository.GetAll();

            if (criteria.UserId != 0)
            {
                notifications = notifications.Where(x => x.UserId == criteria.UserId);
            }
            else
            {
                notifications = notifications.Where(x => x.UserId == (int)this.CurrentUserId);
            }

            if (!string.IsNullOrEmpty(criteria.PartialDescription))
            {
                notifications = this.MatchInFields <Domain.Entities.Notification>(notifications, criteria.PartialDescription, true, c => new[] {
                    c.Title.ToLower(),
                    c.Message.ToLower()
                });
            }

            if (criteria.Unread)
            {
                notifications = notifications.Where(x => x.Read == false);
            }

            var result = this.CreateResult <Domain.Entities.Notification, NotificationDto>(notifications, criteria, "Id desc");

            return(result);
        }
示例#2
0
        public HttpResponseMessage Search(HttpRequestMessage request, [FromUri] NotificationListViewCriteria criteria)
        {
            return(CreateHttpResponse(request, () => {
                HttpResponseMessage response = null;
                var notificationsDto = this.notificationAppService.Search(criteria);

                response = request.CreateResponse(HttpStatusCode.OK, notificationsDto);
                return response;
            }));
        }