Пример #1
0
        private Resp HandleInvalidBaseRequest(IInputValidationResult failedBaseValidation)
        {
            // TODO we may have an issue if the request class suddenly needs parameters in the constructor
            // In that case we may need to "push" the instantiation to the implementer class
            Resp result = (Resp)Activator.CreateInstance(typeof(Resp));

            result.ErrorCode    = 1;
            result.ErrorMessage = "Validation of request failed";
            result.ErrorLevel   = ErrorLevelType.Error;
            return(result);
        }
Пример #2
0
        public void TestExternalRequestBaseValidator_InvalidRequest()
        {
            // Initalize
            ExternalRequestBaseValidator externalRequestBaseValidator = new ExternalRequestBaseValidator();
            // Create invalid request (This is simple as we made ApplicationId > 0 equal success
            ExternalRequestBase externalRequest = new ExternalRequestBase()
            {
                ApplicationId = 0
            };
            // Validate our complicated request
            IInputValidationResult result = externalRequestBaseValidator.Validate(externalRequest);

            // We expect this to be error
            Assert.AreEqual(ValidationResultType.Error, result.ValidationResult);
        }
Пример #3
0
        public Resp ProcessRequest(Req request)
        {
            Resp result = null;

            // Validate BaseRequest
            IInputValidationResult baseValidationResult = _baseValidator.Validate(request);

            // If BaseRequest is valid - then validate specific request
            if (baseValidationResult.ValidationResult == ValidationResultType.Success)
            {
                IRequestValidator <Req> validator = GetInputRequestValidator(request);

                InpValRes validationResult = (InpValRes)validator.Validate(request);

                switch (validationResult.ValidationResult)
                {
                case ValidationResultType.Success:
                    result = HandleValidRequest(request, validationResult);
                    break;

                case ValidationResultType.Warning:
                    result = HandleWarningRequest(request, validationResult);
                    break;

                case ValidationResultType.Error:
                    result = HandleInvalidRequest(request, validationResult);
                    break;

                default:
                    throw new ArgumentOutOfRangeException("Unknown ValidationResult");
                }
            }
            else
            {
                // Should we handle it here in the base manager or send it back to the implementing class as HandleInvalidRequest ?
                // I think we should handle it here
                // TODO - Decorate response from BaseRequestValidator with enough information to set these properties below with valid
                // information across all interfaces
                result = HandleInvalidBaseRequest(baseValidationResult);
            }

            // TODO Log outgoing request - perhaps?

            return(result);
        }