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