예제 #1
0
        public ScheduledMessageService(
            IOptions <ScheduledMessageServiceAppSettings> appSettings
            , IBulkMessagingTelegramClient bulkMessagingTelegramClient
            , ITelegramClient telegramClient
            , ILogger <ScheduledMessageService> logger
            , IMonitoringManager monitoringManager
            , IDateTimeGenerator dateTimeGenerator
            , IUserStorage userStorage
            , IMessageSchedule messageSchedule
            , IRarityRoller rarityRoller
            , IEventManager eventManager
            )
        {
            _appSettings = appSettings.Value;
            _bulkMessagingTelegramClient = bulkMessagingTelegramClient;
            _telegramClient    = telegramClient;
            _logger            = logger;
            _monitoringManager = monitoringManager;
            _dateTimeGenerator = dateTimeGenerator;
            _userStorage       = userStorage;
            _messageSchedule   = messageSchedule;
            _rarityRoller      = rarityRoller;
            _eventManager      = eventManager;

            _logger.LogInformation($"Initializing scheduled messaging service...");

            // get message count from personal settings
            MessageCounts = new Dictionary <PartOfDay, int>
            {
                [PartOfDay.Night]     = _appSettings.NightMessagesCount,
                [PartOfDay.Morning]   = _appSettings.MorningMessagesCount,
                [PartOfDay.Afternoon] = _appSettings.AfternoonMessagesCount,
                [PartOfDay.Evening]   = _appSettings.EveningMessagesCount
            };
        }
예제 #2
0
        public DoubleUserStorage(
            ILogger <DoubleUserStorage> logger
            , IOptions <ScheduledMessageServiceAppSettings> appSettings
            , IBoyfriendBotDbContextFactory dbContextFactory
            )
        {
            _logger = logger;
            _scheduledMessageServiceAppSettings = appSettings.Value;
            _dbContextFactory = dbContextFactory;

            using (var context = _dbContextFactory.Create())
            {
                var dbos = context.User.ToList();

                dbos.ForEach(x => _userCache.Add(x.UserId, x.ChatId));
            }
        }