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; } } }
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} уже существует"); } } }