Пример #1
0
        public async Task Execute(object transaction, ITelegramBotClient botClient, ILogger logger, IDbContext db)
        {
            var cuurentTransaction = transaction as CommandTransactionModel;

            var date = db.Set <DateModel>()
                       .Include(u => u.FirstUser)
                       .Include(u => u.SecondUser)
                       .FirstOrDefault(d => (d.FirstUser.TelegramId == cuurentTransaction.RecipientId ||
                                             d.SecondUser.TelegramId == cuurentTransaction.RecipientId) &&
                                       d.IsActive == true);

            if (date == null)
            {
                return;
            }

            UserModel user = db.Set <UserModel>().Find(date.FirstUser.Id);

            user.IsVisible = false;
            user.IsFree    = true;
            db.Update(user);

            user           = db.Set <UserModel>().Find(date.SecondUser.Id);
            user.IsVisible = false;
            user.IsFree    = true;
            db.Update(user);

            date.IsActive = false;
            db.Update(date);
            await db.SaveChangesAsync();

            await botClient.SendTextMessageAsync(date.FirstUser.TelegramId, Messages.DateEnd);

            await botClient.SendTextMessageAsync(date.SecondUser.TelegramId, Messages.DateEnd);

            DateEnd?.Invoke(date.Id);
        }