public async Task <IActionResult> CreateSessionAsync(CreateSessionRequest createSessionRequest, CancellationToken cancellationToken) { if (!string.IsNullOrEmpty(createSessionRequest.HostCode) && !string.IsNullOrEmpty(createSessionRequest.SessionId)) { var session = await _sessionProvider.GetSessionByIdAsync(createSessionRequest.SessionId, cancellationToken); var userJoinCheck = await CheckUserCanJoinSessionAsync(session, createSessionRequest.Nickname, createSessionRequest.UserId, createSessionRequest.HostCode, cancellationToken); if (userJoinCheck.GetType() != typeof(OkResult)) { return(userJoinCheck); } } var response = await _sessionProvider.CreateSessionAsync(createSessionRequest, cancellationToken); return(Ok(response)); }