Esempio n. 1
0
        private void ProcessTurnInternal(int gameId, ProcessTurnDto processTurnDtoData)
        {
            var gameService = _services.Resolve<IGameService>();

            gameService.LoadGame(new LoadGameData
            {
                GameId = gameId
            });

            var actionData = processTurnDtoData.ToData();

            gameService.ProcessTurn(actionData);

            gameService.SaveGame();
        }
Esempio n. 2
0
        public static ICollection<string> IsValid(ProcessTurnDto dtoData)
        {
            var output = new List<string>();

            if(dtoData == null)
            {
                AddError(output, nameof(ProcessTurnDto));

                return output;
            }

            if(dtoData.Actions == null)
            {
                AddError(output, nameof(ProcessTurnDto), nameof(dtoData.Actions));
            }

            foreach(var action in dtoData.Actions)
            {
                if(!Utilities.ContainsValue(action.ActionTypeId, ActionType.None))
                {
                    AddError(output, nameof(ProcessTurnDto), nameof(action.ActionTypeId), action.ActionTypeId);
                }

                if(action.Data == null || !action.Data.Any())
                {
                    AddError(output, nameof(ProcessTurnDto), nameof(action.Data), action.Data?.Count);
                }

                foreach(var data in action.Data)
                {
                    if(data.Value == null)
                    {
                        AddError(output, nameof(ProcessTurnDto), nameof(action.Data), data.Value);
                    }
                }
            }

            return output;
        }