/// <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); }