예제 #1
0
        public async Task OnContactsAccept(ApplicationContext context, CallbackQuery query, TelegramBotClient client)
        {
            long userId = Convert.ToInt64(query.Data.Split('-')[1]);

            User user = await UserDB.GetUserByChatId(context, query.From.Id);

            User anotherUser = await UserDB.GetUserByChatId(context, userId);

            ContactsBook contact = user.Contacts.FirstOrDefault(c => c.OwnerId == query.From.Id && c.AnotherUserId == userId);

            if (contact != null)
            {
                contact.IsAccepted = true;

                context.ContactsBooks.Update(contact);
                context.SaveChanges();
                await client.EditMessageReplyMarkupAsync(query.From.Id, query.Message.MessageId, InlineKeyboardMarkup.Empty());

                await client.SendTextMessageAsync(query.From.Id, $"Вы дали доступ к своим данным пользователю {anotherUser.FirstName}",
                                                  ParseMode.Markdown);

                await client.SendTextMessageAsync(userId, $"{user.FirstName} потвердил запрос на данные",
                                                  ParseMode.Markdown);
            }
        }
예제 #2
0
        public void Solve(string[] args)
        {
            StreamReader  file   = new StreamReader("C:\\Users\\scosta\\Documents\\Visual Studio 2013\\Projects\\HackerRank\\HackerRank\\TestCases\\Contacts\\TestCase1.txt");
            StringBuilder result = new StringBuilder();

            ContactsBook contactsBook = new ContactsBook();
            int          n            = Convert.ToInt32(file.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string[] op = file.ReadLine().Split(' ');
                if (op[0] == "add")
                {
                    contactsBook.Add(op[1].ToCharArray());
                }
                else if (op[0] == "find")
                {
                    result.AppendLine(contactsBook.Find(op[1].ToCharArray()).ToString());
                }
            }

            Console.Write(result.ToString());

            Console.ReadLine();
            file.Close();
        }
예제 #3
0
        public async Task OnBook(ApplicationContext context, CallbackQuery query, TelegramBotClient client)
        {
            long userId = Convert.ToInt64(query.Data.Split('-')[1]);

            User user = await UserDB.GetUserByChatId(context, query.From.Id);                                   // kim

            InfoAboutUsers info = context.InfoAboutUsers.FirstOrDefault(N => N.EventId == user.CurrentEventId); //Liza

            info.AmountOfRequestsOfContacts++;
            context.Update(info);
            context.SaveChanges();
            User toAdd = await UserDB.GetUserByChatId(context, userId); // roma

            StringBuilder builder = new StringBuilder();

            TelegramInlineKeyboard inline = new TelegramInlineKeyboard();

            List <ContactsBook> contacts = user.Contacts;

            if (contacts.All(e => e.AnotherUserId != toAdd.TelegramId))
            {
                ContactsBook book = new ContactsBook()
                {
                    OwnerId       = user.TelegramId,
                    AnotherUserId = toAdd.TelegramId,
                    IsAccepted    = false
                };
                user.Contacts.Add(book);
                context.Update(user);
                context.SaveChanges();

                await client.SendTextMessageAsync(user.TelegramId, builder.ToString(), ParseMode.Markdown);

                inline
                .AddTextRow("Да", "Нет")
                .AddCallbackRow($"contacts_accept-{user.TelegramId}", $"contacts_decline-{user.TelegramId}");

                await client.SendTextMessageAsync(toAdd.TelegramId,
                                                  $"{user.FirstName} сделал запрос на добавление контактов, потвердить?", ParseMode.Markdown, replyMarkup : inline.Markup);
            }
        }