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); }
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; })); }