private void CheckStatusForRole(string role, OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null)
 {
     if (!CanViewStatus(role, sessionStatus, orderStatus))
     {
         throw new RestaurantUnauthorizedException("Nincs jogosultsága a megadott állapotú rendelések megtekintéséhez!");
     }
 }
        public async Task CheckRightsForStatusModification(OrderSessionStatus sessionStatus, OrderStatus oldStatus, OrderStatus newStatus)
        {
            var role = await UserService.GetCurrentUserRole();

            if (role != Roles.Owner && oldStatus == OrderStatus.Cancelled)
            {
                throw new RestaurantUnauthorizedException("Nincs jogosultsága a rendelés módosításához!");
            }

            if (role == Roles.Chef && (newStatus == OrderStatus.Served || newStatus == OrderStatus.Cancelled || oldStatus == OrderStatus.Ordering || newStatus == OrderStatus.Ordering))
            {
                throw new RestaurantUnauthorizedException("Nincs jogosultsága a kért művelet végrehajtásához!");
            }

            CheckStatusForRole(role, sessionStatus, oldStatus);
        }
 public bool CanViewStatus(string role, OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null)
 => sessionStatusVisibilities[role].Contains(sessionStatus) && (orderStatus == null || orderStatusVisibilities[role].Contains(orderStatus ?? 0));
        public async Task CheckRightsForStatus(OrderSessionStatus sessionStatus, OrderStatus?orderStatus = null)
        {
            var role = await UserService.GetCurrentUserRole();

            CheckStatusForRole(role, sessionStatus, orderStatus);
        }