protected override CreateOrderInformation SetOrderType(CreateOrderInformation information)
        {
            if (CrOrderBuilder.GetIsCompanyIdentity() &&
                CrOrderBuilder.GetCompanyCustomer().GetAddressSelector() != null)
            {
                OrderInfo.AddressSelector = CrOrderBuilder.GetCompanyCustomer().GetAddressSelector();
            }
            else
            {
                OrderInfo.AddressSelector = "";
            }

            OrderInfo.OrderType = OrderType.Invoice;
            return(OrderInfo);
        }
        protected override CreateOrderInformation SetOrderType(CreateOrderInformation information)
        {
            if (CrOrderBuilder.GetIsCompanyIdentity() &&
                CrOrderBuilder.GetCompanyCustomer().GetAddressSelector() != null)
            {
                OrderInfo.AddressSelector = CrOrderBuilder.GetCompanyCustomer().GetAddressSelector();
            }
            else
            {
                OrderInfo.AddressSelector = "";
            }

            OrderInfo.OrderType = OrderType.Invoice;
            return OrderInfo;
        }
        /// <summary>
        /// PrepareRequest
        /// </summary>
        /// <exception cref="SveaWebPayValidationException"></exception>
        /// <returns>CreateOrderEuRequest</returns>
        public CreateOrderEuRequest PrepareRequest()
        {
            var errors = ValidateOrder();

            if (errors.Length > 0)
            {
                throw new SveaWebPayValidationException(errors);
            }

            var sveaOrder = new CreateOrderEuRequest {
                Auth = GetPasswordBasedAuthorization()
            };

            var             formatter          = new WebServiceRowFormatter <CreateOrderBuilder>(CrOrderBuilder);
            List <OrderRow> formattedOrderRows = formatter.FormatRows();

            // make order rows and put in CreateOrderInformation
            OrderInfo = new CreateOrderInformation
            {
                CustomerIdentity         = CrOrderBuilder.GetSoapPurifiedCustomer(),
                ClientOrderNumber        = CrOrderBuilder.GetClientOrderNumber(),
                CreatePaymentPlanDetails = CrOrderBuilder.GetCampaignCode() != null
                                                   ? new CreatePaymentPlanDetails
                {
                    CampaignCode = CrOrderBuilder.GetCampaignCode(),
                    SendAutomaticGiroPaymentForm =
                        CrOrderBuilder.GetSendAutomaticGiroPaymentForm()
                }
                                                   : null,
                OrderDate         = CrOrderBuilder.GetOrderDate(),
                CustomerReference = CrOrderBuilder.GetCustomerReference(),
                OrderRows         = formattedOrderRows.ToArray(),
                PeppolId          = CrOrderBuilder.GetPeppolId()
            };

            sveaOrder.CreateOrderInformation = SetOrderType(OrderInfo);

            return(sveaOrder);
        }
 protected abstract CreateOrderInformation SetOrderType(CreateOrderInformation information);
        /// <summary>
        /// PrepareRequest
        /// </summary>
        /// <exception cref="SveaWebPayValidationException"></exception>
        /// <returns>CreateOrderEuRequest</returns>
        public CreateOrderEuRequest PrepareRequest()
        {
            var errors = ValidateOrder();
            if (errors.Length > 0)
            {
                throw new SveaWebPayValidationException(errors);
            }

            var sveaOrder = new CreateOrderEuRequest {Auth = GetPasswordBasedAuthorization()};

            var formatter = new WebServiceRowFormatter<CreateOrderBuilder>(CrOrderBuilder);
            List<OrderRow> formattedOrderRows = formatter.FormatRows();

            // make order rows and put in CreateOrderInformation
            OrderInfo = new CreateOrderInformation
                {
                    CustomerIdentity = CrOrderBuilder.GetSoapPurifiedCustomer(),
                    ClientOrderNumber = CrOrderBuilder.GetClientOrderNumber(),
                    CreatePaymentPlanDetails = CrOrderBuilder.GetCampaignCode() != null
                                                   ? new CreatePaymentPlanDetails
                                                       {
                                                           CampaignCode = CrOrderBuilder.GetCampaignCode(),
                                                           SendAutomaticGiroPaymentForm =
                                                               CrOrderBuilder.GetSendAutomaticGiroPaymentForm()
                                                       }
                                                   : null,
                    OrderDate = CrOrderBuilder.GetOrderDate(),
                    CustomerReference = CrOrderBuilder.GetCustomerReference(),
                    OrderRows = formattedOrderRows.ToArray()
                };

            sveaOrder.CreateOrderInformation = SetOrderType(OrderInfo);

            return sveaOrder;
        }
 protected abstract CreateOrderInformation SetOrderType(CreateOrderInformation information);