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)); }
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)); }
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); }
/// <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))); }
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); }
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); }
public IWebCall <GetNotificationsRequest, GetNotificationsResponse> NotificationsPost(GetNotificationsRequest request) { return(CreateWebCall <GetNotificationsRequest, GetNotificationsResponse>(HttpMethod.POST, new Uri(host + "/notifications"), request)); }