public SendGameEventInvitationDto( int gameEventId, [NotNull] string userNameTo, [NotNull] GameEventLinkGenerator gameEventLinkGenerator) { System.Diagnostics.Debug.WriteLine(userNameTo); GameEventId = gameEventId; UserNameTo = userNameTo; _gameEventLinkGenerator = gameEventLinkGenerator; }
public async Task SendRemindersIfDateBetweenAsync( DateTime dateTimeFromInclusive, DateTime dateTimeToExclusive, GameEventLinkGenerator gameEventLinkGenerator) { var gameEvents = await GetEventsAndParticipationsWhereDateBetween( dateTimeFromInclusive, dateTimeToExclusive); var sendTasks = gameEvents.Select(g => SendReminder(g, gameEventLinkGenerator)); await Task.WhenAll(sendTasks); }
private Task SendReminder(GameEvent gameEvent, GameEventLinkGenerator gameEventLinkGenerator) { Debug.Assert(gameEvent.Date.HasValue, "gameEvent.Date.HasValue"); var users = ExtractParticipants(gameEvent); var notifications = users.Select( u => new EventReminderNotification( gameEvent.Name, u.UserName, u.Email, gameEvent.Date.Value, gameEventLinkGenerator(gameEvent.Id.ToString()))); return(_notificationService.CreateNotificationBatch(notifications).SendAsync()); }