Ejemplo n.º 1
0
 protected NotificationDto(Guid id, IntegrationEvent @event, IntegrationEventType eventType,
                           ConfirmationType state, Importancy importancy) : this()
 {
     Id           = id;
     Event        = @event;
     EventType    = eventType;
     CreationTime = DateTime.UtcNow;
     State        = state;
     Importancy   = importancy;
 }
Ejemplo n.º 2
0
        public void SetImportancy(Guid userId, Importancy importancy)
        {
            var userBasedEventImportancy = Importancies.FirstOrDefault(x => x.UserId.Equals(userId));

            if (userBasedEventImportancy is null)
            {
                var userImportancy = new UserBasedEventImportancy
                {
                    Importancy = importancy,
                    UserId     = userId
                };
                Importancies.Add(userImportancy);
            }
            else
            {
                userBasedEventImportancy.Importancy = importancy;
            }
        }
Ejemplo n.º 3
0
        public INotificationQueryBuilder FilterByMinimalImportancy(Importancy minimumLevel)
        {
            var importancy = _pureQuery
                             .SelectMany(x => x.Importancies)
                             .FirstOrDefault(x => x.UserId.Equals(_userId));

            if (minimumLevel == Importancy.Trivial)
            {
                return(this);
            }

            switch (importancy)
            {
            case null:
                return(this);

            default:
                _query = _query.Where(x => x.Importancies.Single(y => y.Id.Equals(importancy.Id)).Importancy >= importancy.Importancy);
                return(this);
            }
        }
Ejemplo n.º 4
0
 public async Task ChangeNotificationImportancy(Guid notifcationId, Importancy importancy) =>
 await _notificationsService.ChangeNotificationImportancy(GetCurrentUser(), notifcationId, importancy);
        public async Task ChangeNotificationImportancy(UserDto currentUser, Guid notifcationId, Importancy importancy)
        {
            var notification = await _context.Notifications
                               .Include(x => x.Confirmations)
                               .Include(x => x.Importancies)
                               .FirstOrDefaultAsync(x => x.Id.Equals(notifcationId));

            if (notification is null)
            {
                _logger.LogInformation($"{notifcationId} does not exist and cannot set importancy");
                return;
            }

            notification.SetImportancy(currentUser.Id, importancy);
            notification.IncrementProcessedTimes();

            await _context.SaveChangesAsync();
        }