Example #1
0
        private MancalaPlayer CreatePlayer(GameInstanceUser gameInstanceUser)
        {
            var player = new MancalaPlayer();

            player.Board = new int[7] {
                4, 4, 4, 4, 4, 4, 0
            };
            player.User = GameInstanceMapper.Map(gameInstanceUser);
            return(player);
        }
Example #2
0
        public ActionResult <IResponse <object> > Get(Guid id)
        {
            var gameInstance = GameInstanceLogic.Get(id);

            if (gameInstance == null)
            {
                return(NotFound(gameInstance));
            }

            var response = new Response <GameInstanceDto>();

            response.Data = GameInstanceMapper.Map(gameInstance);
            return(Ok(response));
        }
Example #3
0
        public ActionResult <IResponse <object> > Get()
        {
            var gameInstances = GameInstanceLogic.GetCurrentUserGameInstancesWithoutGameStates();

            if (gameInstances == null)
            {
                return(new EmptyResult());
            }

            var response = new Response <ICollection <UserGameInstanceStatelessDto> >();

            response.Data = GameInstanceMapper.Map(gameInstances);
            return(Ok(response));
        }
Example #4
0
        public ActionResult <IResponse <object> > GetChat(Guid id)
        {
            var gameInstanceMessages = GameInstanceUserMessageLogic.GetViewResults(id);

            if (gameInstanceMessages == null)
            {
                return(NotFound(gameInstanceMessages));
            }

            var response = new Response <ICollection <GameInstanceUserMessageDto> >();

            response.Data = GameInstanceMapper.Map(gameInstanceMessages);
            return(Ok(response));
        }
Example #5
0
        public ActionResult <IResponse <object> > New(CreateGameInstanceDto dto)
        {
            var validationResponse = GameInstanceValidator.Validate(dto);

            if (!validationResponse.IsValid)
            {
                return(BadRequest(validationResponse));
            }

            var gameInstanceResponse = GameInstanceLogic.New(dto);

            var response = ResponseMapper.MapMetadata <GameInstanceDto>(gameInstanceResponse);

            response.Data = GameInstanceMapper.Map(gameInstanceResponse.Data);
            return(Ok(response));
        }
Example #6
0
        public ActionResult <IResponse <object> > RefreshCheck(RefreshCheckDto dto)
        {
            var gameInstance = GameInstanceLogic.Get(dto.Id);

            if (gameInstance == null)
            {
                return(NotFound(gameInstance));
            }

            var response = new Response <GameInstanceDto>();

            if (gameInstance.State.DateCreated <= dto.Date)
            {
                return(Ok());
            }

            response.Data = GameInstanceMapper.Map(gameInstance);
            return(Ok(response));
        }
Example #7
0
        public async Task <ActionResult <IResponse <object> > > PlayAsync(PlayGameInstanceDto dto)
        {
            var validationResponse = GameInstanceValidator.Validate(dto);

            if (!validationResponse.IsValid)
            {
                return(BadRequest(validationResponse));
            }

            var gameInstanceResponse = GameInstanceLogic.Play(dto);

            var response = ResponseMapper.MapMetadata <GameInstanceDto>(gameInstanceResponse);

            response.Data = GameInstanceMapper.Map(GameInstanceLogic.Get(dto.Id));
            if (response.IsValid)
            {
                await GameHubContext.Clients.Group(dto.Id.ToString()).SendAsync("Refresh");
            }
            return(Ok(response));
        }
Example #8
0
        public async Task SendMessage(ChatMessageDto dto)
        {
            var validationResults = GameInstanceValidator.Validate(dto);

            if (!validationResults.IsValid)
            {
                throw new Exception(string.Join(',', validationResults.Errors));
            }

            var messageToSave = new GameInstanceUserMessage();

            messageToSave.Text           = dto.Text;
            messageToSave.UserId         = RequestContext.UserId;
            messageToSave.GameInstanceId = dto.Id;
            var entity      = GameInstanceUserMessageLogic.Save(messageToSave);
            var responseDto = GameInstanceMapper.Map(entity);

            responseDto.UserEmail = RequestContext.Email;

            await Clients.Group(dto.Id.ToString()).SendAsync("ReceiveMessage", responseDto);
        }
Example #9
0
        private void Arrange()
        {
            var fakeRequestContext = A.Fake <IRequestContext>();

            _gameInstanceMapper = new GameInstanceMapper(fakeRequestContext);

            _gameInstance = new GameInstance
            {
                Id          = Guid.Parse("d3738777-44b9-4ce8-8bf7-3ce2e985ef52"),
                GameId      = (int)Games.Mancala,
                DateCreated = Convert.ToDateTime("12-11-2012 12:12:12AM"),
                IsDeleted   = false,
                Game        = new Game
                {
                    DisplayName   = Games.Mancala.ToString(),
                    Id            = 1,
                    IsDeleted     = false,
                    ReferenceName = Games.Mancala.ToString()
                }
            };
            var gameInstanceUsers = new List <GameInstanceUser>
            {
                new GameInstanceUser
                {
                    UserId = 398,
                    Role   = GameInstanceRoles.Player.ToString()
                },
                new GameInstanceUser
                {
                    UserId = 66246,
                    Role   = GameInstanceRoles.Player.ToString()
                },
                new GameInstanceUser
                {
                    UserId = 6363,
                    Role   = GameInstanceRoles.Spectator.ToString()
                },
                new GameInstanceUser
                {
                    UserId = 3785633,
                    Role   = GameInstanceRoles.Spectator.ToString()
                }
            };

            _gameInstance.State = new GameInstanceState
            {
                DataAsJson     = "{\"HasGameBeenSetup\":true,\"GameIsPlayable\":true,\"IsPlayer1Turn\":true,\"Player1\":{\"Board\":[4,4,4,4,4,4,0],\"User\":{\"UserId\":398,\"Role\":\"Player\",\"UserEmail\":null}},\"Player2\":{\"Board\":[4,4,4,4,4,4,0],\"User\":{\"UserId\":66246,\"Role\":\"Player\",\"UserEmail\":null}}}",
                DateCreated    = Convert.ToDateTime("12-12-2012 12:12:12AM"),
                GameInstanceId = Guid.Parse("d3738777-44b9-4ce8-8bf7-3ce2e985ef52"),
                Id             = 3983
            };
            _gameInstance.Users = gameInstanceUsers;

            _gameInstanceUser = new GameInstanceUser
            {
                GameInstanceId = Guid.Parse("d3738777-44b9-4ce8-8bf7-3ce2e985ef52"),
                Id             = 15,
                Role           = GameInstanceRoles.Player.ToString(),
                UserId         = 938,
                User           = new User
                {
                    Id        = 938,
                    Email     = "*****@*****.**",
                    IsDeleted = true,
                    Password  = "******"
                }
            };
        }