Esempio n. 1
0
        public bool ProcessRequest(IGameDataRequest <IGameData> request, out IResponse response)
        {
            ErrorMessage error;

            if (!_gameDataRequestValidator.IsValid(request, out error))
            {
                response = new GameDataResponse().SetErrorResponse(error);
                return(false);
            }

            if (!_processor.TryProcess(request, out response) && response != null)
            {
                return(false);
            }

            if (request.RequestType == RequestType.Read)
            {
                response = ReadFromState(request.Payload);
                return(true);
            }


            response = ApplyToState(request, response);
            return(true);
        }
Esempio n. 2
0
        public bool TryProcess(IGameDataRequest <IGameData> request, out IResponse response)
        {
            switch (request.RequestType)
            {
            case RequestType.Create:
                return(TryPersistRecord(request, out response));

            case RequestType.Update:
                return(TryUpdateRecord(request, out response));

            case RequestType.Delete:
                return(TryDeleteRecord(request, out response));

            case RequestType.Read:
            {
                //There's no real processing to do here
                response = null;
                return(true);
            }

            default:
            {
                var errorMessage = new ErrorMessage(ErrorCode.RequestTypeNotSupported);
                response = new GameDataResponse().SetErrorResponse(errorMessage);
                return(false);
            }
            }
        }
Esempio n. 3
0
        private IResponse ApplyToState(IGameDataRequest <IGameData> request, IResponse response)
        {
            switch (request.RequestType)
            {
            case RequestType.Create:
                return(AddToState(request.Payload));

            case RequestType.Delete:
                return(DeleteFromState(response));

            case RequestType.Update:
                return(UpdateState(response));

            default:
                return(null);
            }
        }
Esempio n. 4
0
 private bool TryUpdateRecord(IGameDataRequest <IGameData> request, out IResponse errorMessage)
 {
     throw new NotImplementedException();
 }
Esempio n. 5
0
 private bool TryPersistRecord(IGameDataRequest <IGameData> request, out IResponse response)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
 public bool IsValid(IGameDataRequest <IGameData> request, out ErrorMessage errorMessage)
 {
     throw new NotImplementedException();
 }