public Task <List <NotificationDto> > Handle(GetMyNotificationsQuery query)
        {
            var userId = _authProvider.UserId;

            if (userId == default)
            {
                throw new UnauthorizedAccessException();
            }

            return(_context.Notifications
                   .Where(n => n.PublishDated < DateTime.UtcNow &&
                          (n.ExpirationDate == null || n.ExpirationDate.Value > DateTime.UtcNow) &&
                          n.Reads.All(r => r.UserId != userId))
                   .ProjectToListAsync <NotificationDto>(_mapper.ConfigurationProvider));
        }
示例#2
0
        public async Task <IActionResult> Get([FromQuery] GetMyNotificationsQuery query)
        {
            var result = await Mediator.Send(query);

            return(Ok(result));
        }