Пример #1
0
        public async Task ChangeMessageId(long chatid, int messageId)
        {
            ShowUsersDTO dto = await showUserRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);

            dto.MessageId = messageId;
            await showUserRepository.Update(dto);
        }
Пример #2
0
        public async ValueTask <int> GetMessageId(long chatid)
        {
            ShowUsersDTO showUsersTable = await showUserRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);

            if (showUsersTable == null)
            {
                showUsersTable = new ShowUsersDTO()
                {
                    ChatId = chatid
                };
                await showUserRepository.Create(showUsersTable);
            }
            return(showUsersTable.MessageId);
        }
Пример #3
0
        public async ValueTask <UserDTO> GetPreviousUser(long chatid)
        {
            ShowUsersDTO showUserTable = await showUserRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);

            string region = showUserTable.Region;

            List <UserDTO> userLst = await(from u in userRepository.Get()
                                           join p in proposalRepository.Get()
                                           on u.ChatId equals p.ChatId
                                           where p.Region == region
                                           select new UserDTO
            {
                BuisnesPrivilag = u.BuisnesPrivilag,
                ChatId          = u.ChatId,
                FIO             = u.FIO,
                IdForShow       = u.IdForShow,
                IsRegister      = u.IsRegister,
                Login           = u.Login,
                Phone           = u.Phone,
                PilotPrivilag   = u.PilotPrivilag
            }).ToListAsync();
            int currShowId = showUserTable.CurrentId;
            int minId      = userLst.Min(i => i.IdForShow);

            if (currShowId == minId)
            {
                return(null);
            }
            List <int> showUserIdList = userLst.Select(i => i.IdForShow).ToList();

            showUserIdList.Sort();
            // меняем текущий просматриваемый currId

            currShowId = showUserIdList.LastOrDefault(i => i < currShowId);

            UserDTO result = userLst.FirstOrDefault(i => i.IdForShow == currShowId);

            if (result.ChatId == chatid)
            {
                result = userLst.FirstOrDefault(i => i.IdForShow < currShowId);
                if (result == null)
                {
                    return(null);
                }
            }
            showUserTable.CurrentId = result.IdForShow;
            await showUserRepository.Update(showUserTable);

            return(result);
        }
Пример #4
0
        public async ValueTask <UserDTO> GetFirstUserForCommand(long chatid, string region)
        {
            List <UserDTO> userLst = await(from u in userRepository.Get()
                                           join p in proposalRepository.Get()
                                           on u.ChatId equals p.ChatId
                                           where p.Region == region
                                           select new UserDTO
            {
                BuisnesPrivilag = u.BuisnesPrivilag,
                ChatId          = u.ChatId,
                FIO             = u.FIO,
                IdForShow       = u.IdForShow,
                IsRegister      = u.IsRegister,
                Login           = u.Login,
                Phone           = u.Phone,
                PilotPrivilag   = u.PilotPrivilag
            }).ToListAsync();



            //int minId = await userRepository.Get().MinAsync(i => i.IdForShow);
            //UserDTO currUser = await userRepository.FindById(chatid);
            //UserDTO userWithMinIdForShow = await userRepository.Get().FirstOrDefaultAsync(i => i.IdForShow == minId);

            //long chatIdSearchUsers;

            //if (currUser.ChatId == userWithMinIdForShow.ChatId)
            //{
            //    currUser = await userRepository.Get().FirstOrDefaultAsync(i => i.IdForShow > minId);
            //    minId = currUser.IdForShow;
            //}
            //else
            //{
            //    currUser = await userRepository.Get().FirstOrDefaultAsync(i => i.IdForShow == minId);
            //}

            //ShowUsersDTO showUsersTable = await showUserRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);

            //if (showUsersTable == null)
            //{
            //    showUsersTable = new ShowUsersDTO()
            //    {
            //        ChatId = chatid,
            //        CurrentId = minId
            //    };
            //}

            //showUsersTable.CurrentId = minId;
            //await showUserRepository.Update(showUsersTable);
            //return currUser;

            int minId = userLst.Min(i => i.IdForShow);

            UserDTO currUser             = userLst.Find(i => i.ChatId == chatid);
            UserDTO userWithMinIdForShow = userLst.FirstOrDefault(i => i.IdForShow == minId);

            if (currUser.ChatId == userWithMinIdForShow.ChatId)
            {
                currUser = userLst.FirstOrDefault(i => i.IdForShow > minId);
                minId    = currUser.IdForShow;
            }
            else
            {
                currUser = userLst.FirstOrDefault(i => i.IdForShow == minId);
            }

            ShowUsersDTO showUsersTable = await showUserRepository.Get().FirstOrDefaultAsync(i => i.ChatId == chatid);

            if (showUsersTable == null)
            {
                showUsersTable = new ShowUsersDTO()
                {
                    ChatId    = chatid,
                    CurrentId = minId
                };
                await showUserRepository.Create(showUsersTable);
            }

            showUsersTable.CurrentId = minId;
            showUsersTable.Region    = region;

            await showUserRepository.Update(showUsersTable);

            return(currUser);
        }