/// <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)); }
/// <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)); }
public async Task <PagedList <UserToModifyNameDto> > GetAllUsersFromGroup([FromQuery] PageParams pageParams, [FromQuery] int groupId, [FromQuery] GroupUsersFilter filters) { var usersWhichNotInGroup = await _repo.GetUsersFromGroup(pageParams, groupId, filters); Response.AddPagination(usersWhichNotInGroup.CurrentPage, usersWhichNotInGroup.PageSize, usersWhichNotInGroup.TotalCount, usersWhichNotInGroup.TotalPages); return(usersWhichNotInGroup); }