/// <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);
        }
Пример #2
0
        public async Task <IEnumerable <GuestDto> > GetAll()
        {
            var guests = await _iGuestRepository.GetAll();

            return(guests.Select(GuestDtoMapper)
                   .ToList());
        }
Пример #3
0
        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);
        }
Пример #4
0
        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
            });
Пример #5
0
 public IEnumerable <Guest> RetrieveGuests()
 {
     return(_guestRepository.GetAll());
 }