diff --git a/TransactionProcessor.BusinessLogic/Services/MerchantDomainService.cs b/TransactionProcessor.BusinessLogic/Services/MerchantDomainService.cs index 1105a1bb..465eef71 100644 --- a/TransactionProcessor.BusinessLogic/Services/MerchantDomainService.cs +++ b/TransactionProcessor.BusinessLogic/Services/MerchantDomainService.cs @@ -419,17 +419,11 @@ public async Task AddContractToMerchant(MerchantCommands.AddMerchantCont if (validateResult.IsFailed) return ResultHelpers.CreateFailure(validateResult); - Result getContractResult = await this.AggregateService.Get(command.RequestDto.ContractId, cancellationToken); - if (getContractResult.IsFailed) { - return ResultHelpers.CreateFailure(getContractResult); - } - - ContractAggregate contractAggregate = getContractResult.Data; - if (contractAggregate.IsCreated == false) { - return Result.Invalid($"Contract Id {command.RequestDto.ContractId} has not been created"); - } + Result contractResult = await this.GetCreatedContract(command.RequestDto.ContractId, cancellationToken); + if (contractResult.IsFailed) + return ResultHelpers.CreateFailure(contractResult); - Result stateResult = merchantAggregate.AddContract(contractAggregate); + Result stateResult = merchantAggregate.AddContract(contractResult.Data); if (stateResult.IsFailed) return stateResult; @@ -713,6 +707,20 @@ private Result ValidateEstateAndMerchant(EstateAggregate estateAggregate, return Result.Success(); } + private async Task> GetCreatedContract(Guid contractId, + CancellationToken cancellationToken) + { + Result contractResult = await this.AggregateService.Get(contractId, cancellationToken); + if (contractResult.IsFailed) + return ResultHelpers.CreateFailure(contractResult); + + ContractAggregate contractAggregate = contractResult.Data; + if (contractAggregate.IsCreated == false) + return Result.Invalid($"Contract Id {contractId} has not been created"); + + return Result.Success(contractAggregate); + } + private async Task> GetMerchantDepositListForWithdrawal(MerchantCommands.MakeMerchantWithdrawalCommand command, CancellationToken cancellationToken) {