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; }
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; } }
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); } }
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(); }