Пример #1
0
        private async void OnUpdateReceived(object sender, UpdateEventArgs e)
        {
            var message = e.Update.Message;

            if (message != null)
            {
                if (message.Type == MessageType.Text)
                {
                    foreach (var command in CommandsList)
                    {
                        if (command.Contains(message.Text))
                        {
                            command.Execute(message, telegramClient);
                            break;
                        }
                    }
                }

                if (message.Type == MessageType.Contact)
                {
                    foreach (var command in CommandsList)
                    {
                        if (command.Contains("Contact"))
                        {
                            command.Execute(message, telegramClient);

                            TelegramEntity user = new TelegramEntity()
                            {
                                ChatID      = message.Chat.Id,
                                FirstName   = message.Contact.FirstName,
                                LastName    = message.Contact.LastName,
                                PhoneNumber = message.Contact.PhoneNumber
                            };

                            await SaveUser(user);

                            break;
                        }
                    }
                }
                else
                {
                    return;
                }
            }
        }
Пример #2
0
        public async Task SaveUser(TelegramEntity entity)
        {
            using (var scope = scopeFactory.CreateScope())
            {
                var _db = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();

                bool isExist = await _db.TelegramEntities
                               .Where(x => x.PhoneNumber == entity.PhoneNumber)
                               .AnyAsync();

                if (!isExist)
                {
                    _db.Add(entity);
                    await _db.SaveChangesAsync();

                    logger.LogInformation($"Добавлен новый пользователь с номером {entity.PhoneNumber}");
                }
                else
                {
                    logger.LogError($"Пользователь с номером {entity.PhoneNumber} уже существует");
                }
            }
        }