private LongLastingUserActionArguments GetUserActionArguments(TelegramRozkladUser user) { return(new LongLastingUserActionArguments { TelegramRozkladUser = user }); }
public async Task Add(TelegramRozkladUser telegramRozkladUser) { var alreadyExistedUser = await _dbContext.TelegramRozkladUsers .AsNoTracking() .Where(u => u.TelegramId == telegramRozkladUser.TelegramId) .FirstOrDefaultAsync(); if (alreadyExistedUser == null) { await _dbContext.TelegramRozkladUsers.AddAsync(telegramRozkladUser); await _rozkladUsersDao.Add(telegramRozkladUser); _memoryCache.Set(telegramRozkladUser.TelegramId, telegramRozkladUser); } else { _dbContext.TelegramRozkladUsers.Update(telegramRozkladUser); await _rozkladUsersDao.Update(telegramRozkladUser); _memoryCache.Set(telegramRozkladUser.TelegramId, telegramRozkladUser); } await _dbContext.SaveChangesAsync(); }
public async Task Delete(TelegramRozkladUser telegramRozkladUser) { _memoryCache.Remove(telegramRozkladUser.TelegramId); await _rozkladUsersDao.Delete(telegramRozkladUser); _dbContext.TelegramRozkladUsers.Update(telegramRozkladUser); await _dbContext.SaveChangesAsync(); }
public async Task Update(TelegramRozkladUser telegramRozkladUser) { _dbContext.Update(telegramRozkladUser); await _rozkladUsersDao.Update(telegramRozkladUser); await _dbContext.SaveChangesAsync(); _memoryCache.Set(telegramRozkladUser.TelegramId, telegramRozkladUser); }
public TelegramRozkladUser[] GetDifferentUsers(long count) { var result = new TelegramRozkladUser[count]; for (var i = 0; i < count; i++) { result[i] = new TelegramRozkladUser(); } return(result); }
public async Task InitializeCurrentUser(Update update) { int userTelegramId; long chatId; switch (update.Type) { case UpdateType.Message: userTelegramId = update.Message.From.Id; chatId = update.Message.Chat.Id; break; case UpdateType.CallbackQuery: userTelegramId = update.CallbackQuery.From.Id; chatId = update.CallbackQuery.Message.Chat.Id; break; case UpdateType.EditedMessage: userTelegramId = update.EditedMessage.From.Id; chatId = update.EditedMessage.Chat.Id; break; default: throw new CurrentUserInitializationException($"Unknown telegram update type: {update.Type}"); } TelegramRozkladUser telegramRozkladUser = null; try { telegramRozkladUser = await _telegramRozkladUserDao.FindByTelegramId(userTelegramId); if (telegramRozkladUser == null) { telegramRozkladUser = new TelegramRozkladUser { TelegramId = userTelegramId, Language = _localizationService.DefaultLanguage }; await _telegramRozkladUserDao.Add(telegramRozkladUser); } if (telegramRozkladUser.IsDeleted) { telegramRozkladUser.IsDeleted = false; await _telegramRozkladUserDao.Update(telegramRozkladUser); } _currentTelegramUserContext.TelegramRozkladUser = telegramRozkladUser; _currentTelegramUserContext.ChatId = chatId; } catch (Exception e) { var outE = new CurrentUserInitializationException("Error when getting user", e); var telegramRozkladUserId = telegramRozkladUser?.TelegramId; _logger.LogError(TelegramLogEvents.UserInitializationError, outE, "userTelegramId = {userTelegramId}. " + "chatId = {chatId}. " + "TelegramRozkladUser telegram id = {telegramRozkladUserId}", userTelegramId, chatId, telegramRozkladUserId); throw outE; } }
public Task <LongLastingUserActionArguments> GetUserLongLastingAction(TelegramRozkladUser telegramRozkladUser) { return(_actionCache.TryGetValue(telegramRozkladUser.TelegramId, out var value) ? Task.FromResult(value.Arguments) : Task.FromResult <LongLastingUserActionArguments>(null)); }
public Task ClearUserAction(TelegramRozkladUser rozkladUser) { _actionCache.TryRemove(rozkladUser.TelegramId, out _); return(Task.CompletedTask); }