public async Task MakeBeliveMove(MakeBeliveMoveParams @params) { try { var result = _gameTableService.MakeBelieveMove(Context.User.GetUserId(), @params.SelectedCardId); await NotifyBelieveMoveMade(result); await Clients.Caller.ReceiveMakeBeliveMoveResult(new ReceiveMakeBeliveMoveResultParams() { Succeeded = true, CheckedCard = result.CheckedCard, LoserId = result.LoserId, NextMoverId = result.NextMoverId, HiddenTakedLoserCards = result.LoserId != Context.User.GetUserId() ? result.TakedLoserCards.Select(c => c.Id).ToList() : null, TakedLoserCards = result.LoserId == Context.User.GetUserId() ? result.TakedLoserCards.ToList() : null, RequestId = @params.RequestId, MoverId = Context.User.GetUserId() }); } catch (Exception ex) { _logger.LogError(ex, $"Ошибка хода типа \"Верю\". Игрок с Id = {Context.User.GetUserId()}"); await Clients.Caller.ReceiveMakeBeliveMoveResult(new ReceiveMakeBeliveMoveResultParams() { Succeeded = false, RequestId = @params.RequestId, MoverId = Context.User.GetUserId() }); } }
public Promise <ReceiveMakeBeliveMoveResultParams> MakeBeliveMove(MakeBeliveMoveParams @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 <ReceiveMakeBeliveMoveResultParams>(@params.RequestId, () => { _hubConnection.InvokeAsync(nameof(IMainHubApi.MakeBeliveMove), @params); }); ReceivedMakeBeliveMoveResult += promise.OnCopleted; return(promise); }