public ActionResult Create([FromBody] PurchaseApplicationCreationRequest creationRequest)
        {
            var command = BuildCreatePurchaseApplicationCommand(creationRequest);

            return(command.Match(
                       Fail: BuildValidationErrorResponse,
                       Succ: ExecuteCommandHandler));
        }
            CreatePurchaseApplicationCommand> BuildCreatePurchaseApplicationCommand(PurchaseApplicationCreationRequest creationRequest)
        {
            var commandDto = new CreatePurchaseApplicationCommand.Dto(
                products: creationRequest.Products.Map(product =>
                                                       new CanaryDeliveries.PurchaseApplication.Domain.Entities.Product.Dto(
                                                           link: product.Link,
                                                           units: product.Units,
                                                           additionalInformation: product.AdditionalInformation,
                                                           promotionCode: product.PromotionCode)).ToList(),
                client: new CanaryDeliveries.PurchaseApplication.Domain.Entities.Client.Dto(
                    name: creationRequest.Client.Name,
                    phoneNumber: creationRequest.Client.PhoneNumber,
                    email: creationRequest.Client.Email),
                additionalInformation: creationRequest.AdditionalInformation);

            return(CreatePurchaseApplicationCommand.Create(commandDto));
        }