Example #1
0
        public async Task <IActionResult> PutInfoAboutUsers(int id, InfoAboutUsers infoAboutUsers)
        {
            if (id != infoAboutUsers.InfoAboutUsersId)
            {
                return(BadRequest());
            }

            _context.Entry(infoAboutUsers).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InfoAboutUsersExists(id))

                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #2
0
        public async Task <ActionResult <InfoAboutUsers> > PostInfoAboutUsers(InfoAboutUsers infoAboutUsers)
        {
            _context.InfoAboutUsers.Add(infoAboutUsers);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetInfoAboutUsers", new { id = infoAboutUsers.InfoAboutUsersId }, infoAboutUsers));
        }
Example #3
0
        public async void AddInfoAboutUsers(long chatId, string type)
        {//добавить в info о пользователях eventId
            User user = await Context.Users.FirstOrDefaultAsync(n => n.TelegramId == chatId);

            int   eventId = user.CurrentEventId;
            Event eventt  = await Context.Events.FirstOrDefaultAsync(n => n.EventId == eventId);

            InfoAboutUsers info = await Context.InfoAboutUsers.FirstOrDefaultAsync(m => m.EventId == eventId);

            if (info != null)
            {
                switch (type)
                {
                case "Количество активаций режима общения":
                {
                    info.AmountOfActivationsOfNetworking++;
                }
                break;

                case "Сколько встреч согласовано":
                {
                    info.AmountCompletedMeetings++;
                }
                break;

                case "Сколько запрошено контактов":
                {
                    info.AmountOfRequestsOfContacts++;
                }
                break;

                case "Среднее число контактов":
                {
                    info.AverageAmountOfContact = info.AmountOfRequestsOfContacts /
                                                  (await GetAllParticipantsOfEvent(info.EventId)).Count;
                }
                break;
                }
            }
            Context.Update(info);
            Context.SaveChanges();
        }
Example #4
0
        public async Task OnAccept(ApplicationContext context, CallbackQuery query, TelegramBotClient client)
        {
            long userId = Convert.ToInt32(query.Data.Split('-')[1]);            // roma
            User user   = await UserDB.GetUserByChatId(context, query.From.Id); // ki

            InfoAboutUsers info = context.InfoAboutUsers.FirstOrDefault(n => n.EventId == user.CurrentEventId);

            info.AmountCompletedMeetings++;
            context.Update(info);
            context.SaveChanges();
            User from = await UserDB.GetUserByChatId(context, userId);

            await client.DeleteMessageAsync(query.From.Id, query.Message.MessageId);

            await client.SendTextMessageAsync(user.TelegramId,
                                              $"Встреча с [{from.FirstName} {from.LastName}](tg://user?id={from.TelegramId}) согласована 👐, напишите ему для уточнения времени и места", ParseMode.Markdown);

            await client.SendTextMessageAsync(from.TelegramId,
                                              $"Встреча с [{user.FirstName} {user.LastName}](tg://user?id={user.TelegramId}) согласована 👐, напишите ему для уточнения времени и места", ParseMode.Markdown);
        }
Example #5
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);
            }
        }
Example #6
0
        public async Task <string> GetInfrormationAboutUsers(int idOfEvent, string message)
        {
            Event eventt = await Context.Events.FirstOrDefaultAsync(n => n.EventId == idOfEvent);

            InfoAboutUsers info = await Context.InfoAboutUsers.FirstOrDefaultAsync(m => m.EventId == idOfEvent);

            switch (message)
            {
            case "Количество пользователей":
            {
                return((await GetCountOfParticipants(idOfEvent)).ToString());
            }

            case "Количество использования режим общения":
            {
                return(info.AmountOfActivationsOfNetworking.ToString());
            }

            case "Сколько встреч согласовано":
            {
                return(info.AmountCompletedMeetings.ToString());
            }

            case "Сколько запрошено контактов":
            {
                return(info.AmountOfRequestsOfContacts.ToString());
            }

            case "Среднее число контактов":
            {
                var cnt = (await GetAllParticipantsOfEvent(info.EventId)).Count;
                cnt = cnt == 0 ? 1 : cnt;
                return((info.AmountOfRequestsOfContacts / cnt).ToString());
            }
            }
            return("Бот не знает такой команды");
        }
Example #7
0
        public async Task <string> GetInfrormationAboutUsers(long chatId, string message)
        {
            User user = await Context.Users.FirstOrDefaultAsync(n => n.TelegramId == chatId);

            int   eventId = user.CurrentEventId;
            Event eventt  = await Context.Events.FirstOrDefaultAsync(n => n.EventId == eventId);

            InfoAboutUsers info = await Context.InfoAboutUsers.FirstOrDefaultAsync(m => m.EventId == eventId);

            switch (message)
            {
            case "Количество пользователей":
            {
                List <long> participants = await GetAllParticipantsOfEvent(chatId);

                string t = participants.Count.ToString();
                return(t);
            }

            case "Количество активаций режима общения":
            {
                return(info.AmountOfActivationsOfNetworking.ToString());
            }

            case "Число запросов контактов":
            {
                return(info.AmountOfRequestsOfContacts.ToString());
            }

            case "Число запросов встреч":
            {
                return(info.AmountCompletedMeetings.ToString());
            }
            }
            return("Бот не знает такой команды");
        }