private async Task <Activity> HandleSystemMessage(Activity message) { if (message.Type == ActivityTypes.DeleteUserData) { // Implement user deletion here // If we handle user deletion, return a real message } else if (message.Type == ActivityTypes.ConversationUpdate) { using (var repository = new ChatBotRepository <User>()) { if (message.MembersAdded != null && message.MembersAdded.Any() && !(message.MembersAdded.Any(x => x.Name == "Bot") && message.MembersAdded.Count == 1)) { await GenerateWelcomeMessage(message); List <User> members = new List <User>(); foreach (var user in message.MembersAdded) { repository.Create(new User { ToId = user.Id, ToName = user.Name, FromId = message.Recipient.Id, FromName = message.Recipient.Name, ServiceUrl = message.ServiceUrl, ChannelId = message.ChannelId, ConversationId = message.Conversation.Id, }); } } if (message.MembersRemoved != null && message.MembersRemoved.Any()) { var members = repository.GetCollection.Where(x => x.ConversationId == message.Conversation.Id) .Where(x => message.MembersRemoved.FirstOrDefault(y => y.Name == x.ToName) != null); foreach (var user in members) { repository.Remove(user); } } } } else if (message.Type == ActivityTypes.ContactRelationUpdate) { // Handle add/remove from contact lists // Activity.From + Activity.Action represent what happened //await Conversation.SendAsync(message, () => new WelcomeDialog()); } else if (message.Type == ActivityTypes.Typing) { // Handle knowing tha the user is typing } else if (message.Type == ActivityTypes.Ping) { } return(null); }
private string RemoveMediaElementFromDatabase(string name) { int?mediaItemId; using (var repository = new ChatBotRepository <User>()) { mediaItemId = repository.GetSender(_user.ConversationId, _user.ToName).MediaElements.FirstOrDefault(x => x.Name == name)?.Id; } using (var repository = new ChatBotRepository <MediaElement>()) { if (mediaItemId == null) { return("Упс, но такого файла нет в базе"); } var mediaItem = repository.FindById((int)mediaItemId); repository.Remove(mediaItem); return("Удаление прошо успешно, поздравляю(party)"); } }