/// <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)); }
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)); }