Exemple #1
0
        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);
        }
Exemple #2
0
 public void HandleSuccess(CreateEntityUseCaseResponse createEntityUseCaseResponse)
 {
     ActionResult = new OkObjectResult(createEntityUseCaseResponse.Id);
 }