private async Task <IActionResult> Execute <TResponse>(IRequest <TResponse> request, Func <TResponse, IActionResult> responseFunc)
        {
            IActionResult response;

            var validationResult = ObjectVerification.Validate(request);

            if (validationResult.Failed)
            {
                return(BadRequest(validationResult.Errors));
            }

            try
            {
                var result = await _mediator.Send(request);

                response = responseFunc.Invoke(result);
            }
            catch (Exception exception)
            {
                await _mediator.Publish(new ExceptionOccurred(exception));

                return(BadRequest(exception.Message));
            }

            return(response);
        }
        private async Task <IActionResult> Execute <TRequest, TResponse>(Func <TRequest, Task <TResponse> > handlerFunc, TRequest request, Func <TResponse, IActionResult> responseFunc)
        {
            IActionResult response;

            var validationResult = ObjectVerification.Validate(request);

            if (validationResult.Failed)
            {
                return(BadRequest(validationResult.Errors));
            }

            try
            {
                var result = await handlerFunc.Invoke(request);

                response = responseFunc.Invoke(result);
            }
            catch (Exception exception)
            {
                _logger.Error(exception, exception.Message, exception);

                return(BadRequest(exception.Message));
            }

            return(response);
        }
示例#3
0
        public void Entity_WithValidFields_ReturnsSuccess()
        {
            var testObject = new ObjectVerificationTestClass
            {
                Value = "value",
            };

            var result = ObjectVerification.Validate(testObject);

            Assert.IsFalse(result.Failed);
        }
示例#4
0
        public void Entity_WithFailedFields_ReturnsFailure()
        {
            var result = ObjectVerification.Validate(new ObjectVerificationTestClass());

            Assert.IsTrue(result.Failed);
        }