Пример #1
0
        public async Task <IActionResult> GameEvent(int id)
        {
            var gameEvent = await _gameEventService.GetGameEventAsync(id);

            if (gameEvent == null)
            {
                return(Error.FromController(this).Error("Error!", "Game event not found.", HttpStatusCode.NotFound));
            }

            var userName   = User.Identity.Name;
            var permission = gameEvent.GetUserPermission(userName);

            switch (permission)
            {
            case GameEventPermission.AcceptedInvitation:
            case GameEventPermission.Creator:
            case GameEventPermission.PendingInvitation:
                return(View("GameEvent", gameEvent.ToViewModel(permission)));

            case GameEventPermission.Forbidden:
                return(Error.FromController(this).AccessDenied());

            default:
                throw new ArgumentOutOfRangeException($"Unexpected permission value {permission}.");
            }
        }
        public async Task <IActionResult> ExitGameEvent(int id)
        {
            var gameEvent = await _gameEventService.GetGameEventAsync(id);

            if (gameEvent == null)
            {
                return(Error.FromController(this).Error(
                           "Error!",
                           "Game event you're trying to exit doesn't exist.",
                           HttpStatusCode.NotFound));
            }

            return(View("ExitGameEvent", gameEvent.ToExitViewModel()));
        }