/// <summary> /// Gets the current user ID. The admin user always has an ID equal to 0, while /// guests have sequential user IDs starting from 1. If no user is found, this method returns -1. /// </summary> public async Task <int> GetCurrentUserId() { var user = await GetAuthenticationStateAsync(); var claims = user.User.Claims; var role = claims.First(c => c.Type == ClaimTypes.Role).Value; var username = claims.First(c => c.Type == ClaimTypes.Name).Value; if (role == "Admin") { return(0); } if (role == "Guest") { var guest = await guestRepo.GetAll().FirstOrDefaultAsync(g => g.Username == username); if (guest is not null) { return(guest.Id); } } return(-1); }
public async Task <IEnumerable <GuestDto> > GetAll() { var guests = await _iGuestRepository.GetAll(); return(guests.Select(GuestDtoMapper) .ToList()); }
public List <Guest> GetAllGuests() { var guestData = _repository.GetAll(); var guests = new List <Guest>(); foreach (var g in guestData) { guests.Add(new Guest(g)); } return(guests); }
public async Task <int> GetCurrentUserId() { var user = await GetAuthenticationStateAsync(); var claims = user.User.Claims; var role = claims.First(c => c.Type == ClaimTypes.Role).Value; var username = claims.First(c => c.Type == ClaimTypes.Name).Value; return(role switch { "Admin" => 0, "Guest" => (await guestRepo.GetAll().FirstOrDefaultAsync(g => g.Username == username)).Id, _ => - 1 });
public IEnumerable <Guest> RetrieveGuests() { return(_guestRepository.GetAll()); }