public IHttpActionResult MarkAllAsRead()
        {
            var criteria = new NotifySearchCriteria { OnlyNew = true, Start = 0, Count = int.MaxValue };
            var retVal = _notifier.SearchNotifies(User.Identity.Name, criteria);
            foreach (var notifyEvent in retVal.NotifyEvents)
            {
                notifyEvent.New = false;
                _notifier.Upsert(notifyEvent);
            }

            return Ok(retVal);
        }
        public NotifySearchResult SearchNotifies(string userId, NotifySearchCriteria criteria)
        {
            var query = _innerList.OrderByDescending(x => x.Created).Where(x => x.Creator == userId).AsQueryable();
			if (criteria.Ids != null && criteria.Ids.Any())
			{
				query = query.Where(x => criteria.Ids.Contains(x.Id));
			}
            if (criteria.OnlyNew)
            {
                query = query.Where(x => x.New);
            }
            if (criteria.StartDate != null)
            {
                query = query.Where(x => x.Created >= criteria.StartDate);
            }
            if (criteria.EndDate != null)
            {
                query = query.Where(x => x.Created <= criteria.EndDate);
            }

            if (criteria.OrderBy != null)
            {
                var parts = criteria.OrderBy.Split(':');
                if (parts.Count() > 0)
                {
                    var fieldName = parts[0];
                    if (parts.Count() > 1 && String.Equals(parts[1], "desc", StringComparison.InvariantCultureIgnoreCase))
                    {
                        query = query.OrderByDescending(fieldName);
                    }
                    else
                    {
                        query = query.OrderBy(fieldName);
                    }
                }
            }

            var retVal = new NotifySearchResult
            {
                TotalCount = query.Count(),
                NewCount = query.Where(x => x.New).Count(),
                NotifyEvents = query.Skip(criteria.Start).Take(criteria.Count).ToList()
            };

            return retVal;
        }