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 async Task <IActionResult> CreateAsync([FromBody] CreateFooDto createFooDto) { var createFooOutputPort = new CreateFooOutputPort(); var newFoo = new Foo { Name = createFooDto.Name }; var createFooUseCaseRequest = new CreateEntityUseCaseRequest <Foo>(newFoo); await _createFooUseCase.ExecuteAsync(createFooUseCaseRequest, createFooOutputPort); return(createFooOutputPort.ActionResult); }
public IActionResult Create([FromBody] CreateFooDto createFooDto) { var createFooOutputPort = new CreateFooOutputPort(); var newFoo = new Foo { Name = createFooDto.Name }; var createFooUseCaseRequest = new CreateEntityUseCaseRequest <Foo>(newFoo); _createFooUseCase.Execute(createFooUseCaseRequest, createFooOutputPort); return(createFooOutputPort.ActionResult); }