public void ContractEntities_ConvertFrom_EmptyProductTransactionFees_ContractConverted()
        {
            ContractEntity contract = TestData.ContractEntity;
            List <ContractProductEntity> contractProducts = new List <ContractProductEntity>
            {
                TestData.ContractProductEntity
            };
            List <ContractProductTransactionFeeEntity> contractProductsTransactionFees = new List <ContractProductTransactionFeeEntity>();

            ModelFactory modelFactory = new ModelFactory();

            ContractModel contractModel = modelFactory.ConvertFrom(contract, contractProducts, contractProductsTransactionFees);

            contractModel.ShouldNotBeNull();
            contractModel.EstateId.ShouldBe(contract.EstateId);
            contractModel.ContractId.ShouldBe(contract.ContractId);
            contractModel.OperatorId.ShouldBe(contract.OperatorId);
            contractModel.Description.ShouldBe(contract.Description);
            contractModel.Products.ShouldNotBeNull();
            contractModel.Products.ShouldHaveSingleItem();

            Product         contractProduct         = contractModel.Products.Single();
            ContractProduct expectedContractProduct = contractProducts.Single();

            contractProduct.ProductId.ShouldBe(expectedContractProduct.ProductId);
            contractProduct.DisplayText.ShouldBe(expectedContractProduct.DisplayText);
            contractProduct.Name.ShouldBe(expectedContractProduct.ProductName);
            contractProduct.Value.ShouldBe(expectedContractProduct.Value);
            contractProduct.TransactionFees.ShouldBeEmpty();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the contract.
        /// </summary>
        /// <param name="estateId">The estate identifier.</param>
        /// <param name="contractId">The contract identifier.</param>
        /// <param name="includeProducts">if set to <c>true</c> [include products].</param>
        /// <param name="includeProductsWithFees">if set to <c>true</c> [include products with fees].</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        /// <exception cref="NotFoundException">No contract found in read model with Id [{contractId}]</exception>
        public async Task <ContractModel> GetContract(Guid estateId,
                                                      Guid contractId,
                                                      Boolean includeProducts,
                                                      Boolean includeProductsWithFees,
                                                      CancellationToken cancellationToken)
        {
            EstateReportingContext context = await this.ContextFactory.GetContext(estateId, cancellationToken);

            Contract contract = await context.Contracts.SingleOrDefaultAsync(c => c.EstateId == estateId && c.ContractId == contractId, cancellationToken);

            if (contract == null)
            {
                throw new NotFoundException($"No contract found in read model with Id [{contractId}]");
            }

            List <ContractProduct> contractProducts = null;
            List <ContractProductTransactionFee> contractProductFees = null;

            if (includeProducts || includeProductsWithFees)
            {
                contractProducts = await context.ContractProducts.Where(cp => cp.EstateId == estateId && cp.ContractId == contractId).ToListAsync(cancellationToken);
            }

            if (includeProductsWithFees)
            {
                contractProductFees = await context.ContractProductTransactionFees.Where(f => f.EstateId == estateId && f.ContractId == contractId)
                                      .ToListAsync(cancellationToken);
            }

            return(this.ModelFactory.ConvertFrom(contract, contractProducts, contractProductFees));
        }
        public void ContractEntities_ConvertFrom_EmptyProducts_ContractConverted()
        {
            ContractEntity contract = TestData.ContractEntity;
            List <ContractProductEntity> contractProducts = new List <ContractProduct>();
            List <ContractProductTransactionFeeEntity> contractProductsTransactionFees = null;

            ModelFactory modelFactory = new ModelFactory();

            ContractModel contractModel = modelFactory.ConvertFrom(contract, contractProducts, contractProductsTransactionFees);

            contractModel.ShouldNotBeNull();
            contractModel.EstateId.ShouldBe(contract.EstateId);
            contractModel.ContractId.ShouldBe(contract.ContractId);
            contractModel.OperatorId.ShouldBe(contract.OperatorId);
            contractModel.Description.ShouldBe(contract.Description);
            contractModel.Products.ShouldBeNull();
        }