Пример #1
0
        public async Task <IActionResult> GetNotifications([FromQuery] GetNotificationsRequest request)
        {
            var response = await mediator.Send(request);

            Log.Information($"User #{HttpContext.GetCurrentUserId()} fetched their notifications");

            return(this.CreateResponse(response));
        }
Пример #2
0
        public async Task <IActionResult> GetNotificationsAsync([FromQuery] int pageSize = 50, [FromQuery] string startTime = null, [FromQuery] string endTime = null)
        {
            var userId  = GetCurrentUserId();
            var options = FilterHelper.CreateOptions(startTime, endTime);

            var request = new GetNotificationsRequest(userId, options, pageSize);
            var res     = await _service.ListAsync(request);

            return(Ok(res));
        }
Пример #3
0
        public async Task <Pagination <Notification> > GetNotifications([FromQuery] GetNotificationsRequest request)
        {
            if (request.Page < 0)
            {
                request.Page = 1;
            }

            var notifications = await _notificationRepository.GetNotificationOf((System.Guid) _currentUser.Id, request.Page);

            return(notifications);
        }
Пример #4
0
        /// <summary>
        /// Gets a list of the member's notifications.
        /// </summary>
        /// <param name = "offset">offset to start</param>
        /// <param name = "limit">how many notifications to get</param>
        /// <returns>list of notifications</returns>
        public Task <PagedList <Notification> > GetNotifications(
            int limit,
            string offset = null)
        {
            var page    = PageBuilder(limit, offset);
            var request = new GetNotificationsRequest
            {
                Page = page
            };

            return(gateway(authenticationContext())
                   .GetNotificationsAsync(request)
                   .ToTask(response =>
                           new PagedList <Notification>(response.Notifications, response.Offset)));
        }
Пример #5
0
        public async Task <NotificationSetResponse> ListAsync(GetNotificationsRequest request)
        {
            Ensure.That(request, nameof(request)).IsNotNull();

            var set = await _store.ListAsync(request.UserId, request.PageSize, request.Options);

            var notificationResponses = set.Select(PopulateNotificationResponse).ToList();

            var result = new NotificationSetResponse
            {
                ItemsCount = notificationResponses.Count,
                Results    = notificationResponses
            };

            return(result);
        }
Пример #6
0
        public async Task ListTest(int pageSize, string startTime, string endTime)
        {
            var expectedStartTime = startTime == null ? (DateTimeOffset?)null: DateTimeOffset.Parse(startTime, CultureInfo.InvariantCulture);
            var expectedEndTime   = endTime == null ? (DateTimeOffset?)null : DateTimeOffset.Parse(endTime, CultureInfo.InvariantCulture);
            var service           = new Mock <INotificationHistoryService>();
            var response          = new NotificationSetResponse
            {
                Results = new List <NotificationResponse>
                {
                    new NotificationResponse(NotificationEvent.ArticleCreated)
                    {
                        OwnerUserId = UserId
                    },
                    new NotificationResponse(NotificationEvent.CommentLiked)
                    {
                        OwnerUserId = UserId
                    }
                },
                ItemsCount = 2
            };

            GetNotificationsRequest req = null;

            service.Setup(x => x.ListAsync(It.IsAny <GetNotificationsRequest>()))
            .Callback <GetNotificationsRequest>(request => req = request)
            .ReturnsAsync(response)
            .Verifiable();

            var controller = new NotificationHistoryController(_logger, service.Object).WithUser();
            var result     = await controller.GetNotificationsAsync(pageSize, startTime, endTime);

            service.Verify();
            Assert.NotNull(req);
            Assert.Equal(UserId, req.UserId);
            Assert.Equal(pageSize, req.PageSize);
            Assert.Equal(expectedEndTime, req.Options.EndTime);
            Assert.Equal(expectedStartTime, req.Options.StartTime);

            var res = Assert.IsType <OkObjectResult>(result);

            Assert.IsType <NotificationSetResponse>(res.Value);
            Assert.Equal(response, res.Value);
        }
Пример #7
0
 public IWebCall <GetNotificationsRequest, GetNotificationsResponse> NotificationsPost(GetNotificationsRequest request)
 {
     return(CreateWebCall <GetNotificationsRequest, GetNotificationsResponse>(HttpMethod.POST, new Uri(host + "/notifications"), request));
 }