コード例 #1
0
        /// <summary>
        /// Handles a request
        /// </summary>
        /// <param name="request">The request</param>
        /// <param name="cancellationToken">Cancellation token</param>
        /// <returns>
        /// Response from the request
        /// </returns>
        public async Task <String> Handle(DisableTransactionFeeForProductRequest request,
                                          CancellationToken cancellationToken)
        {
            await this.ContractDomainService.DisableTransactionFeeForProduct(request.TransactionFeeId, request.ContractId, request.ProductId, cancellationToken);

            return(string.Empty);
        }
コード例 #2
0
        public async Task <IActionResult> DisableTransactionFeeForProduct([FromRoute] Guid estateId,
                                                                          [FromRoute] Guid contractId,
                                                                          [FromRoute] Guid productId,
                                                                          [FromRoute] Guid transactionFeeId,
                                                                          CancellationToken cancellationToken)
        {
            // Get the Estate Id claim from the user
            Claim estateIdClaim = ClaimsHelper.GetUserClaim(this.User, "EstateId", estateId.ToString());

            String estateRoleName = Environment.GetEnvironmentVariable("EstateRoleName");

            if (ClaimsHelper.IsUserRolesValid(this.User, new[] { string.IsNullOrEmpty(estateRoleName) ? "Estate" : estateRoleName }) == false)
            {
                return(this.Forbid());
            }

            if (ClaimsHelper.ValidateRouteParameter(estateId, estateIdClaim) == false)
            {
                return(this.Forbid());
            }

            // Create the command
            DisableTransactionFeeForProductRequest command = DisableTransactionFeeForProductRequest.Create(contractId, estateId,
                                                                                                           productId,
                                                                                                           transactionFeeId);

            // Route the command
            await this.Mediator.Send(command, cancellationToken);

            // return the result
            return(this.Ok($"{ContractController.ControllerRoute}/{contractId}/products/{productId}/transactionFees/{transactionFeeId}"));
        }
コード例 #3
0
        public void DisableTransactionFeeForProductRequest_CanBeCreated_IsCreated()
        {
            DisableTransactionFeeForProductRequest disableTransactionFeeForProductRequest = DisableTransactionFeeForProductRequest.Create(TestData.ContractId, TestData.EstateId,
                                                                                                                                          TestData.ProductId,
                                                                                                                                          TestData.TransactionFeeId);

            disableTransactionFeeForProductRequest.ShouldNotBeNull();
            disableTransactionFeeForProductRequest.ContractId.ShouldBe(TestData.ContractId);
            disableTransactionFeeForProductRequest.EstateId.ShouldBe(TestData.EstateId);
            disableTransactionFeeForProductRequest.ProductId.ShouldBe(TestData.ProductId);
            disableTransactionFeeForProductRequest.TransactionFeeId.ShouldBe(TestData.TransactionFeeId);
        }
コード例 #4
0
        public void ContractRequestHandler_DisableTransactionFeeForProductRequest_IsHandled()
        {
            Mock <IContractDomainService> contractDomainService = new Mock <IContractDomainService>();
            ContractRequestHandler        handler = new ContractRequestHandler(contractDomainService.Object);

            DisableTransactionFeeForProductRequest request = TestData.DisableTransactionFeeForProductRequest;

            Should.NotThrow(async() =>
            {
                await handler.Handle(request, CancellationToken.None);
            });
        }