コード例 #1
0
        public async Task <ActionResult> DailyNotificationsListReportAsync(NotifySearchCriteria searchCriteria)
        {
            //var result = await TenderProxy.DailyNotificationsList(searchCriteria);
            var result = await _ApiClient.GetQueryResultAsync <NotifyModel>("Reports/DailyNotificationsList", searchCriteria.ToDictionary());

            return(Json(new PaginationModel(result.Items, result.TotalCount, result.PageSize, result.PageNumber, null)));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public IHttpActionResult Search([FromUri] NotifySearchCriteria criteria)
        {
            var retVal = _notifier.SearchNotifies(User.Identity.Name, criteria);

            return(Ok(retVal));
        }
コード例 #5
0
        public async Task <QueryResult <NotifyModel> > DailyNotificationsList(NotifySearchCriteria searchCriteria)
        {
            var tenders = await _reportsService.GetDailyNotificationsList(searchCriteria);

            return(tenders);
        }