示例#1
0
        public Colour GetPlayerTurn(Domain.Entities.Lobby lobby)
        {
            if (lobby.Rounds.Count % 2 == 0)
            {
                return(Colour.Blue);
            }

            return(Colour.Red);
        }
示例#2
0
        public void GetPlayerTurn_GivenNewGame_ShouldReturnBlue()
        {
            // arrange
            var lobby = new Domain.Entities.Lobby();
            // action
            var playerTurn = new TurnLogic().GetPlayerTurn(lobby);

            // assert

            playerTurn.ShouldBe(Domain.Enumerations.Colour.Blue);
        }
示例#3
0
        public void GetPlayerTurn_AfterOneRound_ShouldReturnRed()
        {
            // arrange
            var lobby = new Domain.Entities.Lobby();

            lobby.Rounds = new List <Round> {
                new Round()
            };

            // action
            var playerTurn = new TurnLogic().GetPlayerTurn(lobby);

            // assert
            playerTurn.ShouldBe(Domain.Enumerations.Colour.Red);
        }
示例#4
0
        public Domain.Entities.Lobby Map(Data.Model.Lobby data)
        {
            var rounds = data.Rounds != null?JsonConvert.DeserializeObject <List <Data.Model.Round> >(data.Rounds) : new List <Data.Model.Round>();

            var players = data.Players != null?JsonConvert.DeserializeObject <List <Data.Model.Player> >(data.Players) : new List <Data.Model.Player>();

            var domain = new Domain.Entities.Lobby
            {
            };

            domain.Players = players.Select(player =>
                                            new Domain.Entities.Player
            {
                Name       = player.PlayerName,
                Identifier = player.ConnectionId,
                PlayerId   = 0,
                Connected  = true
            }).ToList();

            return(domain);
        }
示例#5
0
            public async Task <CreateGameResponse> Handle(CreateGameCommand request, CancellationToken cancellationToken)
            {
                var lobby = new Domain.Entities.Lobby();

                _onitamaDbContext.Lobby.Add(lobby);

                lobby.RedCards    = request?.RedCard.Select(card => (Card)card).ToList();
                lobby.BlueCards   = request?.BlueCard.Select(card => (Card)card).ToList();
                lobby.NeutralCard = (Card)request.NeutralCard;
                await _onitamaDbContext.SaveChangesAsync();

                var notification = new LobbyCreatedEvent
                {
                    LobbyId = lobby.LobbyId
                };

                await _mediator.Publish(notification);

                return(new CreateGameResponse
                {
                    LobbyId = lobby.LobbyId
                });
            }
示例#6
0
        public Data.Model.Lobby Map(Domain.Entities.Lobby domain)
        {
            var data = _mapper.Map <Data.Model.Lobby>(domain);

            return(data);
        }