public virtual async Task ExecuteAsync(CreateEntityUseCaseRequest <T> useCaseRequest, IOutputPort <CreateEntityUseCaseResponse> outputPort) { if (!EntityValidator.IsValid(useCaseRequest.Entity)) { outputPort.HandleError(new SimpleUseCaseError(1, "Not Valid Entity")); return; } long id; try { id = await Repository.AddAsync(useCaseRequest.Entity); } catch (Exception exception) { CoreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(2, "Add Not Found")); return; } if (id == default(long)) { outputPort.HandleError(new SimpleUseCaseError(2, "Add Not Found")); return; } var createEntityUseCaseResponse = new CreateEntityUseCaseResponse(id); outputPort.HandleSuccess(createEntityUseCaseResponse); }
public void HandleSuccess(CreateEntityUseCaseResponse createEntityUseCaseResponse) { ActionResult = new OkObjectResult(createEntityUseCaseResponse.Id); }