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); }
public void Entity_WithValidFields_ReturnsSuccess() { var testObject = new ObjectVerificationTestClass { Value = "value", }; var result = ObjectVerification.Validate(testObject); Assert.IsFalse(result.Failed); }
public void Entity_WithFailedFields_ReturnsFailure() { var result = ObjectVerification.Validate(new ObjectVerificationTestClass()); Assert.IsTrue(result.Failed); }