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