public async Task CreateGameTable(CreateGameTableParams @params) { try { var dto = _gameTableService.CreateGameTable(@params.OwnerId, @params.Name, @params.PlayersCount, @params.CardsCount); await Clients.Caller.ReceiveCreateGameTableResult(new ReceiveCreateGameTableResultParams() { GameTableId = dto.Id, Succeeded = true, RequestId = @params.RequestId }); await NotifyGameTableCreated(dto); } catch (Exception ex) { _logger.LogError(ex, $"Ошибка создания игрового стола. PlayerId = {@params.OwnerId}"); await Clients.Caller.ReceiveCreateGameTableResult(new ReceiveCreateGameTableResultParams() { GameTableId = null, Succeeded = false, RequestId = @params.RequestId }); } }
public Promise <ReceiveCreateGameTableResultParams> CreateGameTable(CreateGameTableParams @params) { if (_isDisposed) { throw new ObjectDisposedException("Ресурсы объекта были освобождены"); } if (_hubConnection == null) { throw new Exception("Подключение еще не было создано"); } if (_hubConnection.State != HubConnectionState.Connected) { throw new Exception($"Подключение еще не установлено. Статус - {_hubConnection.State}"); } var promise = new Promise <ReceiveCreateGameTableResultParams>(@params.RequestId, () => { _hubConnection.InvokeAsync(nameof(IMainHubApi.CreateGameTable), @params); }); ReceivedCreateGameTableResult += promise.OnCopleted; return(promise); }