/// <summary>
        /// pobranie użytkowników którzy nie nalezą do grupy i nie zostało wysłane do nich zaproszenie do danej grupy
        /// </summary>
        /// <param name="pageParams"></param>
        /// <param name="groupId"></param>
        /// <param name="groupUserFilters"></param>
        /// <returns></returns>
        public async Task <PagedList <UserToModifyNameDto> > GetUsersForApplication(PageParams pageParams, int groupId, GroupUsersFilter groupUserFilters)
        {
            // pobranie użytkowników grupy
            var groupUsers = await _context.UserToGroups.Where(x => x.GroupId == groupId).ToListAsync();

            // pobranie zaproszeń do użytkowników dla danej grupy
            var invitedUsers = await _context.Invitations.Where(x => x.GroupId == groupId).ToListAsync();

            // wszyscy uzytkownicy aplikacji
            var appUsers = await _context.Users.ToListAsync();

            // lista użytkowników, którzy nie należą do grupy i którzy nie zostali zaproszeni
            List <UserToModifyNameDto> lstUsers = new List <UserToModifyNameDto>();


            // jeżeli grupa ma jakiś użytkowników
            if (appUsers.Count > 0)
            {
                foreach (Users usr in appUsers)
                {
                    // jeżeli zaproszenie zostało wysłane pomijamy uzytkownika
                    if (invitedUsers.Any(x => x.UserAdresserId == usr.Id))
                    {
                        continue;
                    }

                    // jeżeli użytkownik należy już do grupy
                    if (groupUsers.Any(x => x.UserId == usr.Id))
                    {
                        continue;
                    }

                    // jeżeli nie nalezy do grupy ani jezeli nie zostalo wyslane zaproszenie pokazujemy
                    UserToModifyNameDto utmnu = new UserToModifyNameDto()
                    {
                        UserId   = usr.Id,
                        UserName = usr.UserName
                    };
                    lstUsers.Add(utmnu);
                }
            }


            if (groupUserFilters != null)
            {
                if (groupUserFilters.UserNameLike != null)
                {
                    lstUsers = lstUsers.Where(x => x.UserName.ToLower().Contains(groupUserFilters.UserNameLike.ToLower())).ToList();
                }
            }

            return(await PagedList <UserToModifyNameDto> .Create(lstUsers, pageParams.PageNumber, pageParams.PageSize));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> ModifyUserName([FromBody] UserToModifyNameDto userToModifyDto)
        {
            //nieuwzglenianie case sensitivity przy rejestracji
            userToModifyDto.UserName = userToModifyDto.UserName.ToLower();

            if (await _repo.UserExists(userToModifyDto.UserName))
            {
                return(BadRequest("Użytkownik o takiej nazwie już istnieje"));
            }

            var userToCreate = new Users
            {
                UserName = userToModifyDto.UserName
            };

            var createdUser = await _repo.ModifyUserName(userToModifyDto.UserId, userToModifyDto.UserName);

            //zwrotka dla klienta gdzie został stworzony nowy obiekt
            //return CreatedAtRoute();
            return(StatusCode(201));
        }
        /// <summary>
        /// pobranie uzytkowników należących do danej grupy
        /// </summary>
        /// <param name="pageParams"></param>
        /// <param name="groupId"></param>
        /// <param name="groupUserFilters"></param>
        /// <returns></returns>
        public async Task <PagedList <UserToModifyNameDto> > GetUsersFromGroup(PageParams pageParams, int groupId, GroupUsersFilter groupUserFilters)
        {
            // pobranie użytkowników grupy
            var groupUsers = await _context.UserToGroups.Where(x => x.GroupId == groupId).ToListAsync();


            // lista użytkowników, którzy należą do grupy
            List <UserToModifyNameDto> lstUsers = new List <UserToModifyNameDto>();


            // jeżeli grupa ma jakiś użytkowników
            if (groupUsers.Count > 0)
            {
                foreach (UserToGroups usr in groupUsers)
                {
                    var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == usr.UserId);

                    UserToModifyNameDto utmnu = new UserToModifyNameDto()
                    {
                        UserId   = user.Id,
                        UserName = user.UserName
                    };
                    lstUsers.Add(utmnu);
                }
            }


            if (groupUserFilters != null)
            {
                if (groupUserFilters.UserNameLike != null)
                {
                    lstUsers = lstUsers.Where(x => x.UserName.ToLower().Contains(groupUserFilters.UserNameLike.ToLower())).ToList();
                }
            }

            return(await PagedList <UserToModifyNameDto> .Create(lstUsers, pageParams.PageNumber, pageParams.PageSize));
        }