public void Execute(GetFooByNameUseCaseRequest useCaseRequest, IOutputPort <GetFooByNameUseCaseResponse> outputPort) { Foo foo; try { foo = _fooRepository.GetByName(useCaseRequest.Name); } catch (Exception exception) { _coreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(2, "Unknown Error")); return; } if (foo == default(Foo)) { outputPort.HandleError(new SimpleUseCaseError(1, $"{nameof(Foo)} with {nameof(useCaseRequest.Name)} {useCaseRequest.Name} not exists")); return; } var getFooByNameUseCaseResponse = new GetFooByNameUseCaseResponse(foo); outputPort.HandleSuccess(getFooByNameUseCaseResponse); }
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 virtual async Task ExecuteAsync(UpdateEntityUseCaseRequest <T> useCaseRequest, IOutputPort <UpdateEntityUseCaseResponse> outputPort) { if (!EntityValidator.IsValid(useCaseRequest.Entity)) { outputPort.HandleError(new SimpleUseCaseError(1, "Not Valid Entity")); return; } bool updated; try { updated = await Repository.UpdateAsync(useCaseRequest.Entity); } catch (Exception exception) { CoreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(2, "Update Not Found")); return; } if (!updated) { outputPort.HandleError(new SimpleUseCaseError(2, "Update Not Found")); return; } var updateEntityUseCaseResponse = new UpdateEntityUseCaseResponse(useCaseRequest.Entity.Id); outputPort.HandleSuccess(updateEntityUseCaseResponse); }
public virtual async Task ExecuteAsync(GetEntityByIdUseCaseRequest useCaseRequest, IOutputPort <GetEntityByIdUseCaseResponse <T> > outputPort) { T entity; try { entity = await Repository.GetByIdAsync(useCaseRequest.Id); } catch (Exception exception) { CoreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(2, "Unknown Error")); return; } if (entity == default(T)) { outputPort.HandleError(new SimpleUseCaseError(1, $"{typeof(T).Name} with {nameof(useCaseRequest.Id)} {useCaseRequest.Id} not exists")); return; } var getByIdEntityUseCaseResponse = new GetEntityByIdUseCaseResponse <T>(entity); outputPort.HandleSuccess(getByIdEntityUseCaseResponse); }
public virtual async Task ExecuteAsync(DeleteEntityUseCaseRequest useCaseRequest, IOutputPort <DeleteEntityUseCaseResponse> outputPort) { var entityToBeDeleted = new T { Id = useCaseRequest.Id }; bool deleted; try { deleted = await Repository.DeleteAsync(entityToBeDeleted); } catch (Exception exception) { CoreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(1, "Delete Not Found")); return; } if (!deleted) { outputPort.HandleError(new SimpleUseCaseError(1, "Delete Not Found")); return; } var deleteEntityUseCaseResponse = new DeleteEntityUseCaseResponse(useCaseRequest.Id); outputPort.HandleSuccess(deleteEntityUseCaseResponse); }
public virtual async Task ExecuteAsync(GetAllEntitysUseCaseRequest useCaseRequest, IOutputPort <GetAllEntityUseCaseResponse <T> > outputPort) { IEnumerable <T> entities; try { entities = await Repository.GetAllAsync(); } catch (Exception exception) { CoreLogger.LogError(exception); outputPort.HandleError(new SimpleUseCaseError(1, "Unknown Error")); return; } var getAllEntityUseCaseResponse = new GetAllEntityUseCaseResponse <T>(entities); outputPort.HandleSuccess(getAllEntityUseCaseResponse); }