public int GetTotalUsers() { using (var context = _dbContextFactory.Create()) { return(context.User.Count()); } }
public async Task <List <Message> > SendWakeUpMessageToAllUsersAsync(CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(null); } var sentMessages = new List <Message>(); IEnumerable <UserDbo> users = null; using (var context = _dbContextFactory.Create()) { users = context.User .Include(x => x.UserSettings) .Include(x => x.RarityWeights) .Where(x => x.UserSettings.RecieveReminders); } foreach (var user in users) { Message sentMessage = null; var rarity = _rarityRoller.RollRarityForUser(user); var message = await _messageTextProvider.GetMessage(MessageCategory.WAKEUP, MessageType.STANDARD, rarity, user.ChatId); // could already pass gender and so on if (message.ImageUrl == null) { sentMessage = await _botClient.SendTextMessageAsync(user.ChatId, message.Text); } else { sentMessage = await _botClient.SendPhotoAsync(user.ChatId, message.ImageUrl, caption : message.Text); } sentMessages.Add(sentMessage); } return(sentMessages); }
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)); } }
public override async Task Execute(long chatId, params string[] args) { var settingId = args[0]; var settingValue = args[1]; var user = await _userStorage.GetUserByChatIdNoTracking(chatId); var userId = user.UserId; var messageId = 0; if (args.Length == 3) { int.TryParse(args[2], out messageId); } var query = $"UPDATE \"UserSettings\" SET \"{settingId}\" = {settingValue} WHERE \"UserId\" = {userId}"; using (var context = _contextFactory.Create()) { try { await((DbContext)context).Database.ExecuteSqlRawAsync(query); _logger.LogError($"Executed query \"{query}\". ChatId: {chatId}"); await _botClient.SendTextMessageAsync(chatId, "Готово!"); //if (messageId == 0) //{ // await _botClient.SendTextMessageAsync(chatId, "Готово!"); // //} //else //{ // await _botClient.EditMessageTextAsync(chatId, messageId, "Готово!"); //} } catch (Exception ex) { _logger.LogError($"Query \"{query}\" wasn't executed. Exception: {ex.ToString()}"); await _botClient.SendTextMessageAsync(chatId, Const.ErrorMessage); } } }