public void CanWeSubscribe()
        {
            Account acc = zth.MakeTestAccount();
            Contact con = zth.MakeTestContact();
            PaymentMethod pay = zth.MakeTestPaymentMethod();

            String productRatePlanId = zth.CreateRatePlanToSubscribe();
            PreviewOptions po = new PreviewOptions();
            SubscribeOptions so = new SubscribeOptions();
            ProductRatePlanHolder prph = new ProductRatePlanHolder();

            ProductRatePlan prp = new ProductRatePlan();
            prp.Id = productRatePlanId;

            prph.ProductRatePlan = prp;

            ResponseHolder queryRes = zs.Query("SELECT id, ChargeModel FROM ProductRatePlanCharge WHERE productrateplanid = '" + productRatePlanId + "'");
            ProductRatePlanCharge prpc = (ProductRatePlanCharge)queryRes.Objects[0];
            prpc.DefaultQuantity = 11;

            ProductRatePlanChargeHolder prpch = new ProductRatePlanChargeHolder();
            prpch.ProductRatePlanCharge = prpc;

            prph.ProductRatePlanCharges = new List<ProductRatePlanChargeHolder> { prpch };

            SubscribeResponseHolder subResp = sm.Subscribe(acc, con, pay, new List<ProductRatePlanHolder> { prph }, zth.MakeTestSubscription(), po, so);
            Assert.True(subResp.Success);
        }
Beispiel #2
0
        public DocumentPreviewDto LoadDocument(PostedDataDto postedData)
        {
            string password        = string.IsNullOrEmpty(postedData.password) ? null : postedData.password;
            var    documentPreview = new DocumentPreviewDto();

            // set password for protected document
            var loadOptions = new LoadOptions
            {
                Password = password
            };


            bool completed = ExecuteWithTimeLimit(TimeSpan.FromMilliseconds(metadataConfiguration.GetPreviewTimeLimit()), cancelationToken =>
            {
                using (Stream fileStream = fileService.GetSourceFileStream(postedData.guid))
                    using (GroupDocs.Metadata.Metadata metadata = new GroupDocs.Metadata.Metadata(fileStream, loadOptions))
                    {
                        cancelationToken.ThrowIfCancellationRequested();
                        IReadOnlyList <PageInfo> pages = metadata.GetDocumentInfo().Pages;

                        using (MemoryStream stream = new MemoryStream())
                        {
                            PreviewOptions previewOptions = new PreviewOptions(pageNumber => stream, (pageNumber, pageStream) => { });
                            previewOptions.PreviewFormat  = PreviewOptions.PreviewFormats.PNG;

                            int pageCount = pages.Count;
                            if (metadataConfiguration.GetPreloadPageCount() > 0)
                            {
                                pageCount = metadataConfiguration.GetPreloadPageCount();
                            }

                            for (int i = 0; i < pageCount; i++)
                            {
                                cancelationToken.ThrowIfCancellationRequested();
                                previewOptions.PageNumbers = new[] { i + 1 };
                                try
                                {
                                    metadata.GeneratePreview(previewOptions);
                                }
                                catch (NotSupportedException)
                                {
                                    break;
                                }

                                PageDescriptionEntity pageData = GetPageDescriptionEntities(pages[i]);
                                string encodedImage            = Convert.ToBase64String(stream.ToArray());
                                pageData.SetData(encodedImage);
                                documentPreview.SetPages(pageData);
                                stream.SetLength(0);
                            }
                        }
                    }
            });

            documentPreview.SetTimeLimitExceeded(!completed);
            documentPreview.SetGuid(postedData.guid);

            // return document description
            return(documentPreview);
        }
        public AmendResponseHolder DoAddProductAmendment(String subscriptionId, DateTime effectiveDate, String productRatePlanId, AmendOptions ao = null, PreviewOptions po = null)
        {
            AmendRequest amendRequest = new AmendRequest();
            Amendment amendment = new Amendment();

            amendment.Name = "Add Product Amendment";
            amendment.Type = "NewProduct";
            amendment.ContractEffectiveDate = effectiveDate;
            amendment.ContractEffectiveDateSpecified = true;
            amendment.SubscriptionId = subscriptionId;

            RatePlanData ratePlanData = new RatePlanData();
            RatePlan ratePlan = new RatePlan();
            ratePlan.ProductRatePlanId = productRatePlanId;
            ratePlanData.RatePlan = ratePlan;

            amendment.RatePlanData = ratePlanData;
            if (ao != null)
            {
                amendRequest.AmendOptions = ao;
            }
            if (po != null)
            {
                amendRequest.PreviewOptions = po;
            }
            amendRequest.Amendments = new Amendment[] { amendment };
            return zs.Amend(new List<AmendRequest> { amendRequest })[0];
        }
        public void TestGetPages(string filePath, PreviewOptions.FormatEnum?format = null, List <int?> pageNumbersToConvert = null,
                                 bool withoutAnnotations = false, int width       = 0, int height = 0,
                                 bool renderComments     = false, string password = null)
        {
            var fileInfo = new Model.FileInfo
            {
                FilePath = filePath,
                Password = password
            };
            var options = new PreviewOptions
            {
                FileInfo       = fileInfo,
                Format         = format,
                Height         = height,
                Width          = width,
                PageNumbers    = pageNumbersToConvert,
                RenderComments = renderComments
            };
            var request = new GetPagesRequest(options);
            var result  = PreviewApi.GetPages(request);

            Assert.NotNull(result);
            Assert.Greater(result.TotalCount, 0);
            Assert.NotNull(result.Entries);
            Assert.Greater(result.Entries.Count, 0);
        }
        public AmendResponseHolder DoTermsAndConditionsAmendment(String subscriptionId, DateTime effectiveDate, String termType, int initialTerm, int renewalTerm, AmendOptions ao = null, PreviewOptions po = null)
        {
            AmendRequest amendRequest = new AmendRequest();
            Amendment amendment = new Amendment();
            if (ao != null)
            {
                amendRequest.AmendOptions = ao;
            }
            if (po != null)
            {
                amendRequest.PreviewOptions = po;
            }

            amendment.Name = "T's and C's amendment";
            amendment.Type = "TermsAndConditions";
            amendment.ContractEffectiveDate = effectiveDate;
            amendment.ContractEffectiveDateSpecified = true;
            if(termType != null)
                amendment.TermType = termType;
            amendment.InitialTerm = initialTerm;
            amendment.InitialTermSpecified = true;
            amendment.RenewalTerm = renewalTerm;
            amendment.RenewalTermSpecified = true;
            amendment.SubscriptionId = subscriptionId;

            amendRequest.Amendments = new Amendment[] { amendment };
            return zs.Amend(new List<AmendRequest> { amendRequest })[0];
        }
        public static void Run()
        {
            var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
            var apiInstance   = new DocumentApi(configuration);

            try
            {
                var fileInfo = new FileInfo
                {
                    FilePath = "WordProcessing/four-pages.docx"
                };

                var options = new PreviewOptions()
                {
                    FileInfo   = fileInfo,
                    OutputPath = "Output/preview-page",
                    Pages      = new List <int?> {
                        1, 3
                    },
                    Format = PreviewOptions.FormatEnum.Png
                };

                var request  = new PreviewRequest(options);
                var response = apiInstance.Preview(request);

                foreach (var document in response.Documents)
                {
                    Console.WriteLine("Output file path: " + document.Path);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling api: " + e.Message);
            }
        }
Beispiel #7
0
        /// <summary>
        /// This example demonstrates how to generate document pages preview.
        /// </summary>
        public static void Run()
        {
            string filePath = Constants.SAMPLE_XLSX;

            using (Merger merger = new Merger(filePath))
            {
                PreviewOptions previewOption = new PreviewOptions(CreatePageStream, ReleasePageStream, PreviewMode.JPEG);
                merger.GeneratePreview(previewOption);
            }
        }
        public LoadDocumentEntity LoadDocument(PostedDataDto postedData)
        {
            // get/set parameters
            string             filePath           = metadataConfiguration.GetAbsolutePath(postedData.guid);
            string             password           = string.IsNullOrEmpty(postedData.password) ? null : postedData.password;
            LoadDocumentEntity loadDocumentEntity = new LoadDocumentEntity();

            // set password for protected document
            var loadOptions = new LoadOptions
            {
                Password = password
            };

            using (GroupDocs.Metadata.Metadata metadata = new GroupDocs.Metadata.Metadata(filePath, loadOptions))
            {
                GroupDocs.Metadata.Common.IReadOnlyList <PageInfo> pages = metadata.GetDocumentInfo().Pages;

                using (MemoryStream stream = new MemoryStream())
                {
                    PreviewOptions previewOptions = new PreviewOptions(pageNumber => stream, (pageNumber, pageStream) => { });
                    previewOptions.PreviewFormat = PreviewOptions.PreviewFormats.PNG;

                    int pageCount = pages.Count;
                    if (metadataConfiguration.GetPreloadPageCount() > 0)
                    {
                        pageCount = metadataConfiguration.GetPreloadPageCount();
                    }
                    for (int i = 0; i < pageCount; i++)
                    {
                        previewOptions.PageNumbers = new[] { i + 1 };
                        try
                        {
                            metadata.GeneratePreview(previewOptions);
                        }
                        catch (NotSupportedException)
                        {
                            continue;
                        }

                        PageDescriptionEntity pageData = GetPageDescriptionEntities(pages[i]);
                        string encodedImage            = Convert.ToBase64String(stream.ToArray());
                        pageData.SetData(encodedImage);
                        loadDocumentEntity.SetPages(pageData);
                        stream.SetLength(0);
                    }
                }
            }

            loadDocumentEntity.SetGuid(postedData.guid);

            // return document description
            return(loadDocumentEntity);
        }
Beispiel #9
0
        static MemoryStream RenderPageToMemoryStream(GroupDocs.Annotation.Annotator annotator, int pageNumberToRender)
        {
            MemoryStream result = new MemoryStream();

            PreviewOptions previewOptions = new PreviewOptions(pageNumber => result)
            {
                PreviewFormat  = PreviewFormats.PNG,
                PageNumbers    = new[] { pageNumberToRender },
                RenderComments = false
            };

            annotator.Document.GeneratePreview(previewOptions);

            return(result);
        }
Beispiel #10
0
        public static void Run()
        {
            // Create an instance of Parser class to generate document page previews
            using (Parser parser = new Parser(Constants.SamplePdfWithToc))
            {
                // Create preview options
                PreviewOptions previewOptions = new PreviewOptions(pageNumber => File.Create(GetOutputPath($"preview_{pageNumber}.png")));
                // Set PNG as an output image format
                previewOptions.PreviewFormat = PreviewFormats.PNG;
                // Set DPI for the output image
                previewOptions.Dpi = 72;

                // Generate previews
                parser.GeneratePreview(previewOptions);
            }
        }
Beispiel #11
0
        static MemoryStream RenderPageToMemoryStream(Comparer comparer, int pageNumberToRender)
        {
            MemoryStream  result       = new MemoryStream();
            IDocumentInfo documentInfo = comparer.Source.GetDocumentInfo();

            PreviewOptions previewOptions = new PreviewOptions(pageNumber => result)
            {
                PreviewFormat = PreviewFormats.PNG,
                PageNumbers   = new[] { pageNumberToRender + 1 },
                Height        = documentInfo.PagesInfo[pageNumberToRender].Height,
                Width         = documentInfo.PagesInfo[pageNumberToRender].Width
            };

            comparer.Source.GeneratePreview(previewOptions);

            return(result);
        }
        /// <summary>
        /// Generate document pages preview
        /// </summary>
        public static void Run()
        {
            Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("[Example Basic Usage] # GeneratePreview : Generate document pages preview\n");

            // The path to the documents directory.
            string filePath = Constants.SAMPLE_PDF;

            using (Signature signature = new Signature(filePath))
            {
                // create preview options object
                PreviewOptions previewOption = new PreviewOptions(GeneratePreview.CreatePageStream, GeneratePreview.ReleasePageStream)
                {
                    PreviewFormat = PreviewOptions.PreviewFormats.JPEG,
                };
                // generate preview
                signature.GeneratePreview(previewOption);
            }
        }
Beispiel #13
0
        public static void Run()
        {
            // Create an instance of Parser class to generate spreadsheet page previews
            using (Parser parser = new Parser(Constants.SampleXlsx))
            {
                PageRenderInfo renderInfo = null;

                // Create preview options
                PreviewOptions previewOptions = new PreviewOptions(pageNumber => File.Create(GetOutputPath(renderInfo, pageNumber)));
                // Set delegate to obtain the render info
                previewOptions.PreviewPageRender = info => renderInfo = info;
                // Set PNG as an output image format
                previewOptions.PreviewFormat = PreviewFormats.PNG;
                // Set DPI for the output image
                previewOptions.Dpi = 72;

                // Generate previews
                parser.GeneratePreview(previewOptions);
            }
        }
Beispiel #14
0
        public async Task <ActionResult> OnGetAsync(string name)
        {
            Upload = await DbContext.Uploads.Include(x => x.LocalFile)
                     .Include(x => x.User)
                     .ThenInclude(x => x.PreviewOptions)
                     .Where(x => x.Id.ToString() == name || x.Name == name)
                     .FirstOrDefaultAsync();

            if (Upload == null)
            {
                return(NotFound());
            }

            PreviewOptions = DbContext.PreviewOptions.Where(x => x.UserId == Upload.UserId)
                             .First();

            return(TryGetRedirectionTarget(out string target)
                ? Redirect(target)
                : (ActionResult)Page());
        }
        /// <summary>
        /// Generate document pages preview with using HideSignature feature
        /// </summary>
        public static void Run()
        {
            Console.WriteLine("\n--------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("[Example Advanced Usage] # GeneratePreviewAdvanced : Generate document pages preview with using HideSignature feature\n");

            // The path to the documents directory.
            string filePath = Constants.SAMPLE_SIGNED_MULTI;

            using (Signature signature = new Signature(filePath))
            {
                // create preview options object
                PreviewOptions previewOption = new PreviewOptions(GeneratePreviewAdvanced.CreatePageStream, GeneratePreviewAdvanced.ReleasePageStream)
                {
                    PreviewFormat = PreviewOptions.PreviewFormats.JPEG,
                    // set property to hide all known signatures
                    HideSignatures = true
                };
                // generate preview
                signature.GeneratePreview(previewOption);
            }
        }
        public AmendResponseHolder DoRenewalAmendment(String subscriptionId, DateTime effectiveDate, AmendOptions ao = null, PreviewOptions po = null)
        {
            AmendRequest amendRequest = new AmendRequest();
            Amendment amendment = new Amendment();
            if (ao != null)
            {
                amendRequest.AmendOptions = ao;
            }
            if (po != null)
            {
                amendRequest.PreviewOptions = po;
            }

            amendment.Name = "Renewal amendment";
            amendment.Type = "Renewal";
            amendment.ContractEffectiveDate = effectiveDate;
            amendment.ContractEffectiveDateSpecified = true;
            amendment.SubscriptionId = subscriptionId;

            amendRequest.Amendments = new Amendment[] { amendment };
            return zs.Amend(new List<AmendRequest> { amendRequest })[0];
        }
Beispiel #17
0
        public async Task <ActionResult <User> > CreateUserAsync([FromForm] string username, [FromForm] string password)
        {
            bool nameUsed = await DbContext.Users.AnyAsync(x => x.Username == username);

            if (nameUsed)
            {
                Logger.LogInformation($"Someone tried to create a user but the name is already being used: {username}");
                return(Conflict("Name already used"));
            }

            string token          = Random.NextString(20);
            var    user           = new User(username, password, token);
            var    previewOptions = new PreviewOptions(user.Id);

            DbContext.Add(user);
            DbContext.Add(previewOptions);
            await DbContext.SaveChangesAsync();

            Logger.LogInformation($"Someone created a user: {username} [{user.Id}]");

            return(user);
        }
Beispiel #18
0
        public static void Run()
        {
            var apiInstance = new PreviewApi(Constants.GetConfig());

            try
            {
                var fileInfo = new FileInfo {
                    FilePath = "one-page.docx"
                };
                var options = new PreviewOptions {
                    FileInfo = fileInfo
                };

                var request = new GetPagesRequest(options);

                var response = apiInstance.GetPages(request);
                Console.WriteLine("GetPages: pages count = " + response.TotalCount);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling Annotation PreviewApi: " + e.Message);
            }
        }
        protected void DoAction(object sender, EventArgs e)
        {
            zs = (ZuoraService)Session["zs"];
            AccountManager am = new AccountManager(zs);
            PaymentManager pm = new PaymentManager(zs);
            ProductCatalogManager pcm = new ProductCatalogManager(zs,   "C:\\localCache.txt");
            SubscriptionManager sm = new SubscriptionManager(zs);

            if (zs != null)
            {
                var operation = ddl1.SelectedValue;

                if (operation == "Create Account")
                {
                    result.Text += "<br/>";
                    Account acc = new Account();
                    acc.Name = AccountName.Text;
                    acc.BillCycleDaySpecified = true;
                    acc.BillCycleDay = Convert.ToInt16(BillCycleDay.Text);
                    acc.Currency = Currency.Text;
                    acc.PaymentTerm = PaymentTermDropDown.SelectedValue;
                    acc.Batch = Batch.Text;

                    Contact con = new Contact();
                    con.Address1 = Address1.Text;
                    con.Address2 = Address2.Text;
                    con.City = City.Text;
                    con.State = State.Text;
                    con.LastName = LastName.Text;
                    con.FirstName = FirstName.Text;
                    con.Country = Country.Text;
                    con.PostalCode = Zip.Text;

                    var res = am.CreateAccount(acc, con);
                    result.Text += res.Success ? res.Id : res.Message;
                }
                else if (operation == "Create Child Account And Increase Credit Balance")
                {
                    result.Text += "<br/>";

                    Account acc = new Account();
                    acc.Name = AccountName.Text;
                    acc.BillCycleDaySpecified = true;
                    acc.BillCycleDay = Convert.ToInt16(BillCycleDay.Text);
                    acc.Currency = Currency.Text;
                    acc.PaymentTerm = PaymentTermDropDown.SelectedValue;
                    acc.Batch = Batch.Text;

                    Contact con = new Contact();
                    con.Address1 = Address1.Text;
                    con.Address2 = Address2.Text;
                    con.City = City.Text;
                    con.State = State.Text;
                    con.LastName = LastName.Text;
                    con.FirstName = FirstName.Text;
                    con.Country = Country.Text;
                    con.PostalCode = Zip.Text;

                    var res = am.CreateChildAccountAndIncreaseCreditBalance(acc, ParentAccountId.Text, con, Convert.ToDecimal(AmountBox.Text));
                    result.Text += res.Success ? res.Id : res.Message;
                }
                else if (operation == "Cancel Credit Balance Adjustment On Invoice")
                {
                    result.Text += "<br/>";
                    var res = pm.CancelCreditBalanceAdjustmentOnInvoice(InvoiceId.Text);
                    result.Text += res.Success ? res.Id : res.Message;
                }
                else if (operation == "Get Invoices For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetInvoicesForAccount(AccountId.Text);
                    //string FIELDS_INVOICE = "Id, AccountId, AdjustmentAmount, Amount, AmountWithoutTax, Balance, Comments, CreatedDate, DueDate, IncludesOneTime, IncludesRecurring, IncludesUsage, InvoiceDate, InvoiceNumber, LastEmailSentDate, PaymentAmount, PostedDate, RefundAmount, Source, SourceId, Status, TargetDate, TaxAmount, TaxExemptAmount, TransferredToAccounting, UpdatedDate";
                    //var res = zs.Query("");
                    if (res.Success)
                    {
                        result.Text += "<br/>";
                        if (res.Objects != null)
                        {
                            foreach (zObject zo in res.Objects)
                            {
                                Invoice inv = (Invoice)zo;
                                result.Text += "Invoice Number: " + inv.InvoiceNumber + " Invoice Amount: " + inv.Amount + " Status: " + inv.Status + "<br/>";
                            }
                        }
                        else
                        {
                            result.Text += res.Message;
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Refunds For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetRefundsForAccount(AccountId.Text);
                    if (res.Success)
                    {
                        result.Text += "<br/>";
                        if (res.Objects != null)
                        {
                            foreach (zObject zo in res.Objects)
                            {
                                Refund refund = (Refund)zo;
                                result.Text += "Refund Id: " + refund.Id + " Refund Amount: " + refund.Amount + "<br/>";
                            }
                        }
                        else
                        {
                            result.Text += res.Message;
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Credit Balance Adjustments For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetCreditBalanceAdjustmentsForAccount(AccountId.Text);
                    if (res.Success)
                    {
                        result.Text += "<br/>";
                        if (res.Objects != null)
                        {
                            foreach (zObject zo in res.Objects)
                            {
                                CreditBalanceAdjustment cba = (CreditBalanceAdjustment)zo;
                                result.Text += "CBA Id: " + cba.Id + " CBA Amount: " + cba.Amount + "<br/>";
                            }
                        }
                        else
                        {
                            result.Text += res.Message;
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Credit Cards For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetCreditCardsForAccount(AccountId.Text);
                    if (res.Success)
                    {
                        result.Text += "<br/>";
                        if (res.Objects != null)
                        {
                            foreach (zObject zo in res.Objects)
                            {
                                PaymentMethod payMethod = (PaymentMethod)zo;
                                result.Text += "PM Id: " + payMethod.Id + " PM Type: " + payMethod.Type + "<br/>";
                            }
                        }
                        else
                        {
                            result.Text += res.Message;
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get PO For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetPOForAccount(AccountId.Text);
                    result.Text += "PO: " + res;
                }
                else if (operation == "Get Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetAccount(AccountId.Text);
                    if (res.Success && res.Objects != null)
                    {
                        Account acc = (Account)res.Objects[0];
                        result.Text += "Account Name: " + acc.Name + "<br/>";
                        result.Text += "Account Credit Balance: " + acc.CreditBalance + "<br/>";
                    }
                    else
                    {
                        result.Text += res.Message;
                    }

                }
                else if (operation == "Get Contact")
                {
                    var res = am.GetContact(AccountId.Text);

                    if (res.Success && res.Objects != null)
                    {
                        result.Text += "<br/>";
                        foreach (zObject zo in res.Objects)
                        {
                            Contact con = (Contact)zo;
                            result.Text += "Contact First Name: " + con.FirstName + "<br/>";
                            result.Text += "Contact Last Name: " + con.LastName + "<br/>";
                            result.Text += "Contact Email: " + con.WorkEmail + "<br/>";
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Change Invoice Template")
                {
                    result.Text += "<br/>";
                    var res = am.ChangeInvoiceTemplate(AccountId.Text, InvoiceTemplateId.Text);
                    if (res.Success)
                    {
                        result.Text += res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Does Account Name Exist In Zuora")
                {
                    result.Text += "<br/>";
                    var res = am.DoesAccountNameExistInZuora(AccountName.Text);
                    result.Text += "Account Exists? " + res;
                }
                else if (operation == "Get Child Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetChildAccount(AccountId.Text);
                    if (res.Success && res.Objects != null)
                    {
                        Account acc = (Account)res.Objects[0];
                        result.Text += "Account Name: " + acc.Name + "<br/>";
                        result.Text += "Account Credit Balance: " + acc.CreditBalance + "<br/>";
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Set Parent Account")
                {
                    result.Text += "<br/>";
                    var res = am.SetParentAccount(ParentAccountId.Text, AccountId.Text);
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Single Invoice")
                {
                    result.Text += "<br/>";
                    //var res = am.GetSingleInvoice(InvoiceId.Text);
                    //var res = zs.Query("SELECT id, status FROM Invoice WHERE Id = '" + InvoiceId.Text + "'").FirstOrDefault<Invoice>();
                    Boolean withBody = false;
                    //string FIELDS_INVOICE = "Id, AccountId, AdjustmentAmount, Amount, AmountWithoutTax, Balance, Comments, CreatedDate, DueDate, IncludesOneTime, IncludesRecurring, IncludesUsage, InvoiceDate, InvoiceNumber, LastEmailSentDate, PaymentAmount, PostedDate, RefundAmount, Source, SourceId, Status, TargetDate, TaxAmount, TaxExemptAmount, TransferredToAccounting, UpdatedDate";
                    string FIELDS_INVOICE = "Id, AccountId, AdjustmentAmount, Amount, AmountWithoutTax, Balance, Comments, CreatedDate, DueDate, IncludesOneTime, IncludesRecurring, IncludesUsage, InvoiceDate, InvoiceNumber, LastEmailSentDate, PaymentAmount, PostedDate, RefundAmount, Status";
                    var query = string.Format("SELECT {0} FROM invoice WHERE Id = '{1}'", FIELDS_INVOICE, InvoiceId.Text);
                    var res = zs.Query(query);
                    if (res.Success && res.Objects != null)
                    {
                        result.Text += "Success: " + res.Id;
                        result.Text += "Invoice Amount: " + ((Invoice)res.Objects[0]).Amount;
                        result.Text += " Status: " + ((Invoice)res.Objects[0]).Status;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Increase Credit Balance")
                {
                    var res = pm.IncreaseCreditBalance(AccountId.Text, Convert.ToDecimal(AmountBox.Text));
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Apply Credit Balance To Invoice")
                {
                    var res = pm.ApplyCreditBalanceToInvoice(InvoiceId.Text, Convert.ToDecimal(AmountBox.Text));
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Refund Electronic Payment")
                {
                    result.Text += "<br/>";
                    var res = pm.RefundElectronicPayment(PaymentId.Text, Convert.ToDecimal(RefundAmount.Text));
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Decrease Credit Balance")
                {
                    result.Text += "<br/>";
                    var res = pm.DecreaseCreditBalance(AccountId.Text, Convert.ToDecimal(AmountBox.Text));
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Apply Payment To Invoice")
                {
                    result.Text += "<br/>";
                    var res = pm.ApplyPaymentToInvoice(AccountId.Text, InvoiceId.Text, PaymentMethodId.Text, Convert.ToDecimal(PaymentAmount.Text),PaymentMethodType.SelectedValue );
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Refund External Payment")
                {
                    result.Text += "<br/>";
                    var res = pm.RefundExternalPayment(PaymentId.Text, Convert.ToDecimal(RefundAmount.Text), PaymentMethodType.SelectedValue, Convert.ToDateTime(RefundDate.Text) );
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Product Catalog")
                {
                    result.Text += "<br/>";
                    var res = pcm.GetProductCatalog();
                    if (res != null)
                    {
                        result.Text += "Success: " + "<br/>";
                        foreach (var ph in res)
                        {
                            result.Text += "<b>Product Name:</b>" + ph.Product.Name + "<br/>";
                            foreach (var prph in ph.ProductRatePlans)
                            {
                                result.Text += "<b>Product Rate Plan Name:</b>" + prph.ProductRatePlan.Name + "<br/>";
                            }
                        }
                    }
                    else
                    {
                        result.Text += "Error";
                    }
                }
                else if (operation == "Get Rate Plan By Name")
                {
                    result.Text += "<br/>";
                    var res = pcm.GetProductRatePlanByName(Name.Text);
                    if (res != null)
                    {
                        result.Text += "Success: " + res.ProductRatePlan.Name;
                    }
                    else
                    {
                        result.Text += "Didn't find";
                    }
                }
                else if (operation == "Disable Rate Plan")
                {
                    result.Text += "<br/>";
                    var res = pcm.DisableRatePlan(ProductRatePlanId.Text, Convert.ToDateTime(DisableDate.Text));
                    if (res.Success)
                    {
                        result.Text += "Success: " + res.Id;
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                else if (operation == "Get Product By Name")
                {
                    result.Text += "<br/>";
                    var res = pcm.GetProductByName(Name.Text);
                    if (res != null)
                    {
                        result.Text += "Success: " + res.Product.Name;
                    }
                    else
                    {
                        result.Text += "Didn't Find";
                    }
                }
                else if (operation == "Create Product")
                {
                    result.Text += "<br/>";
                    Constants.ProductType pt = new Constants.ProductType();
                    if (ProductType.Text == "Application")
                    {
                        pt = Constants.ProductType.Application;
                    }
                    else if (ProductType.Text == "iCredits")
                    {
                        pt = Constants.ProductType.iCredits;
                    }
                    else if (ProductType.Text == "Storage")
                    {
                        pt = Constants.ProductType.Storage;
                    }

                    var res = pcm.CreateProduct(Name.Text, pt, SKU.Text, Description.Text);
                    if (res != null)
                    {
                        result.Text += "Success: " + res.Product.Id;
                    }
                    else
                    {
                        result.Text += "Error";
                    }
                }
                else if (operation == "Create Rate Plan With One Time Charge")
                {
                    Product prod = new Product();
                    prod.Id = ProductId.Text;
                    result.Text += "<br/>";
                    var res = pcm.CreateRatePlanWithOneTimeCharge(prod, Name.Text, Convert.ToDecimal(Price.Text));
                    if (res != null)
                    {
                        result.Text += "Success: " + res.ProductRatePlan.Id;
                    }
                    else
                    {
                        result.Text += "Error";
                    }
                }
                else if (operation == "Delete Rate Plan")
                {
                    pcm.DeleteRatePlan(IdToDelete.Text);
                }
                else if (operation == "Delete Product")
                {
                    pcm.DeleteProduct(IdToDelete.Text);
                }
                else if (operation == "Change Price For Product")
                {
                    List<ResponseHolder> resps = pcm.ChangePriceForProduct(ProductRatePlanChargeId.Text, new decimal[] { Convert.ToDecimal(Price.Text) }, "USD");
                    result.Text += "<br/>";
                    foreach (ResponseHolder resp in resps)
                    {
                        if (resp.Success)
                        {
                            result.Text += resp.Id;
                        }
                        else
                        {
                            result.Text += resp.Message;
                        }
                    }
                }
                else if (operation == "Subscribe")
                {
                    result.Text += "<br/>";
                    Account acc = new Account();
                    acc.Name = AccountName.Text;
                    acc.BillCycleDaySpecified = true;
                    acc.BillCycleDay = Convert.ToInt16(BillCycleDay.Text);
                    acc.Currency = Currency.Text;
                    acc.PaymentTerm = PaymentTermDropDown.SelectedValue;
                    acc.Batch = Batch.Text;

                    Contact con = new Contact();
                    con.Address1 = Address1.Text;
                    con.Address2 = Address2.Text;
                    con.City = City.Text;
                    con.State = State.Text;
                    con.LastName = LastName.Text;
                    con.FirstName = FirstName.Text;
                    con.Country = Country.Text;
                    con.PostalCode = Zip.Text;

                    DateTime date = Convert.ToDateTime(SubscriptionDate.Text);

                    Subscription sub = new Subscription();
                    sub.ContractAcceptanceDateSpecified = true;
                    sub.ContractAcceptanceDate = date;
                    sub.ServiceActivationDateSpecified = true;
                    sub.ServiceActivationDate = date;
                    sub.ContractEffectiveDateSpecified = true;
                    sub.ContractEffectiveDate = date;

                    sub.TermType = SubscriptionTermType.Text;
                    if (SubscriptionTermType.Text == "TERMED")
                    {
                        sub.InitialTermSpecified = true;
                        sub.InitialTerm = 12;
                        sub.RenewalTermSpecified = true;
                        sub.RenewalTerm = 12;
                    }

                    PreviewOptions po = new PreviewOptions();
                    po.EnablePreviewModeSpecified = false;
                    po.EnablePreviewMode = false;

                    SubscribeOptions so = new SubscribeOptions();
                    so.GenerateInvoiceSpecified = false;
                    so.GenerateInvoice = false;
                    so.ProcessPaymentsSpecified = false;
                    so.ProcessPayments = false;

                    ProductRatePlanHolder prph = pcm.GetProductRatePlanByName(ProductRatePlanName.Text);

                    SubscribeResponseHolder resp = sm.Subscribe( acc, con, null, new List<ProductRatePlanHolder> { prph }, sub, po, so);

                    if (resp.Success)
                    {
                        result.Text += resp.SubRes.AccountId;
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }

                }
                else if (operation == "Subscribe With Existing Account")
                {
                    result.Text += "<br/>";
                    DateTime date = Convert.ToDateTime(SubscriptionDate.Text);

                    Subscription sub = new Subscription();
                    sub.ContractAcceptanceDateSpecified = true;
                    sub.ContractAcceptanceDate = date;
                    sub.ServiceActivationDateSpecified = true;
                    sub.ServiceActivationDate = date;
                    sub.ContractEffectiveDateSpecified = true;
                    sub.ContractEffectiveDate = date;

                    sub.TermType = SubscriptionTermType.Text;
                    if (SubscriptionTermType.Text == "TERMED")
                    {
                        sub.InitialTermSpecified = true;
                        sub.InitialTerm = 12;
                        sub.RenewalTermSpecified = true;
                        sub.RenewalTerm = 12;
                    }

                    PreviewOptions po = new PreviewOptions();
                    po.EnablePreviewModeSpecified = false;
                    po.EnablePreviewMode = false;

                    SubscribeOptions so = new SubscribeOptions();
                    so.GenerateInvoiceSpecified = false;
                    so.GenerateInvoice = false;
                    so.ProcessPaymentsSpecified = false;
                    so.ProcessPayments = false;

                    ProductRatePlanHolder prph = pcm.GetProductRatePlanByName(ProductRatePlanName.Text);

                    SubscribeResponseHolder resp = sm.SubscribeWithExisitingAccount(AccountId.Text, new List<ProductRatePlanHolder>{prph}, sub, po, so);
                    if (resp.Success)
                    {
                        result.Text += resp.SubRes.AccountId;
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if (operation == "Do Add Product Amendment")
                {
                    AmendOptions ao = new AmendOptions();
                    ao.GenerateInvoiceSpecified = false;
                    ao.GenerateInvoice = false;

                    ao.ProcessPaymentsSpecified = true;
                    ao.ProcessPayments = false;

                    PreviewOptions po = new PreviewOptions();
                    po.EnablePreviewModeSpecified = false;
                    po.EnablePreviewMode = false;

                    AmendResponseHolder resp = sm.DoAddProductAmendment(SubscriptionId.Text, Convert.ToDateTime(AmendmentStartDate.Text), ProductRatePlanId.Text, ao, po);
                    if (resp.Success)
                    {
                        result.Text += resp.AmendRes.AmendmentIds[0];
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if (operation == "Do Renewal Amendment")
                {
                    AmendOptions ao = new AmendOptions();
                    ao.GenerateInvoiceSpecified = true;
                    ao.GenerateInvoice = false;

                    ao.ProcessPaymentsSpecified = true;
                    ao.ProcessPayments = false;

                    PreviewOptions po = new PreviewOptions();
                    po.EnablePreviewModeSpecified = false;
                    po.EnablePreviewMode = false;

                    AmendResponseHolder resp = sm.DoRenewalAmendment(SubscriptionId.Text, Convert.ToDateTime(AmendmentStartDate.Text), ao, po);
                    if (resp.Success)
                    {
                        result.Text += resp.AmendRes.AmendmentIds[0];
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if (operation == "Do Terms And Conditions Amendment")
                {
                    AmendOptions ao = new AmendOptions();
                    ao.GenerateInvoiceSpecified = true;
                    ao.GenerateInvoice = false;

                    ao.ProcessPaymentsSpecified = true;
                    ao.ProcessPayments = false;

                    PreviewOptions po = new PreviewOptions();
                    po.EnablePreviewModeSpecified = false;
                    po.EnablePreviewMode = false;

                    AmendResponseHolder resp = sm.DoTermsAndConditionsAmendment(
                                                    SubscriptionId.Text,
                                                    Convert.ToDateTime(AmendmentStartDate.Text),
                                                    SubscriptionTermType.SelectedValue,
                                                    Convert.ToInt32(InitialTerm.Text),
                                                    Convert.ToInt32(RenewalTerm.Text),
                                                    ao,
                                                    po
                                               );
                    if (resp.Success)
                    {
                        result.Text += resp.AmendRes.AmendmentIds[0];
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if (operation == "Get Subscription And Charge Info")
                {
                    SubscriptionInfoHolder sih = sm.GetSubscriptionAndChargeInfo(SubscriptionId.Text);
                    if (sih.Success)
                    {
                        result.Text += "<b>SubId:</b>" + sih.Subscription.Id + "<br/>";
                        foreach (RatePlan rp in sih.RatePlanList)
                        {
                            result.Text += "<b>RP Name:</b>" + rp.Name + "<br/>";
                        }
                    }
                    else
                    {
                        result.Text += sih.Message;
                    }
                }
                else if (operation == "Update Contact")
                {
                    ResponseHolder resp = am.UpdateContact(AccountId.Text, LastName.Text, FirstName.Text, Address1.Text, City.Text, State.Text, Zip.Text, Country.Text);

                    if (resp.Success)
                    {
                        result.Text += resp.Id;
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if(operation == "Get Credit Cards")
                {
                    ResponseHolder resp = am.GetCreditCardsPaymentMethods(AccountId.Text);

                    if (resp.Success)
                    {
                        foreach (zObject zo in resp.Objects)
                        {
                            PaymentMethod paymentMethod = (PaymentMethod)zo;
                            result.Text += "Payment Method: " + paymentMethod.Id + "<br/>";
                        }
                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if (operation == "Get Invoices PDF For Account")
                {
                    result.Text += "<br/>";
                    var res = am.GetInvoicesForAccount(AccountId.Text);
                    //string FIELDS_INVOICE = "Id, AccountId, AdjustmentAmount, Amount, AmountWithoutTax, Balance, Comments, CreatedDate, DueDate, IncludesOneTime, IncludesRecurring, IncludesUsage, InvoiceDate, InvoiceNumber, LastEmailSentDate, PaymentAmount, PostedDate, RefundAmount, Source, SourceId, Status, TargetDate, TaxAmount, TaxExemptAmount, TransferredToAccounting, UpdatedDate";
                    //var res = zs.Query("");
                    if (res.Success)
                    {
                        result.Text += "<br/>";
                        if (res.Objects != null)
                        {
                            Invoice invoice = (Invoice) res.Objects[0];
                            foreach (zObject zo in res.Objects)
                            {
                                Invoice inv = (Invoice)zo;
                                if (inv.CreatedDate > invoice.CreatedDate)
                                {
                                    invoice = inv;
                                }
                                result.Text += "Invoice Number: " + inv.InvoiceNumber + " Invoice Amount: " + inv.Amount + " Status: " + inv.Status + "<br/>";
                            }

                            Invoice invRes = (Invoice)am.GetInvoicePDFForAccount(invoice.Id).Objects[0];
                            var invoiceBody = invRes.Body;

                            Byte[] bytes = System.Convert.FromBase64String(invoiceBody.ToString());

                            string pathString = @"C:\Users\sxuereb\Documents\Invoices";
                            string fileName = invRes.InvoiceNumber +".pdf";
                            pathString = System.IO.Path.Combine(pathString, fileName);

                            if (!System.IO.File.Exists(pathString))
                            {
                                using (System.IO.FileStream fs = System.IO.File.Create(pathString))
                                {
                                    for (int i = 0; i < bytes.Length; i++)
                                    {
                                        fs.WriteByte(bytes[i]);
                                    }
                                }
                            }
                            else
                            {
                                Console.WriteLine("File \"{0}\" already exists.", fileName);
                                return;
                            }

                        }
                        else
                        {
                            result.Text += res.Message;
                        }
                    }
                    else
                    {
                        result.Text += res.Message;
                    }
                }
                /*else if(operation == "Get Current Subscription")
                {
                    ResponseHolder resp = sm.GetCurrentSubscription(AccountId.Text);

                    if (resp.Success)
                    {

                    }
                    else
                    {
                        result.Text += resp.Message;
                    }
                }
                else if(operation == "New Credit Card")
                {

                }*/
                else if (operation == "Delete Payment Method")
                {
                    List<ResponseHolder> resp = am.DeletePaymentMethod(PaymentMethodId.Text);

                    if (resp[0].Success)
                    {
                        result.Text += "Successfully Deleted Payment Method.";
                    }
                    else
                    {
                        result.Text += resp[0].Message;
                    }
                }

            }
            else
            {
                result.Text += "Please Login" + "<br/>";
            }

            ddl1.SelectedIndex = 0;
        }
        public void CanWeSubscribeToMultipleRatePlansWithExistingAccount()
        {
            String accId = zth.MakeSubscription(true).SubRes.AccountId;
            String productRatePlanId = zth.CreateRatePlanToSubscribe();
            PreviewOptions po = new PreviewOptions();
            SubscribeOptions so = new SubscribeOptions();

            ProductRatePlanHolder prph = new ProductRatePlanHolder();

            ProductRatePlan prp = new ProductRatePlan();
            prp.Id = productRatePlanId;

            prph.ProductRatePlan = prp;

            ResponseHolder queryRes = zs.Query("SELECT id, ChargeModel FROM ProductRatePlanCharge WHERE productrateplanid = '" + productRatePlanId + "'");
            ProductRatePlanCharge prpc = (ProductRatePlanCharge)queryRes.Objects[0];
            prpc.DefaultQuantity = 11;

            ProductRatePlanChargeHolder prpch = new ProductRatePlanChargeHolder();
            prpch.ProductRatePlanCharge = prpc;

            prph.ProductRatePlanCharges = new List<ProductRatePlanChargeHolder> { prpch };

            SubscribeResponseHolder subResp = sm.SubscribeWithExisitingAccount(accId, new List<ProductRatePlanHolder> { prph, prph }, zth.MakeTestSubscription(), po, so);
            Assert.True(subResp.Success);
        }
        public void CanWeSubscribeWithoutChargeInfo()
        {
            Account acc = zth.MakeTestAccount();
            Contact con = zth.MakeTestContact();
            PaymentMethod pay = zth.MakeTestPaymentMethod();

            String productRatePlanId = zth.CreateRatePlanToSubscribe();
            PreviewOptions po = new PreviewOptions();
            SubscribeOptions so = new SubscribeOptions();
            ProductRatePlanHolder prph = new ProductRatePlanHolder();

            ProductRatePlan prp = new ProductRatePlan();
            prp.Id = productRatePlanId;

            prph.ProductRatePlan = prp;

            SubscribeResponseHolder subResp = sm.Subscribe(acc, con, pay, new List<ProductRatePlanHolder> { prph }, zth.MakeTestSubscription(), po, so);
            Assert.True(subResp.Success);
        }
        public SubscribeResponseHolder SubscribeWithExisitingAccount(String accountId, List<ProductRatePlanHolder> productRatePlans, Subscription sub, PreviewOptions po, SubscribeOptions so)
        {
            SubscribeRequest subscribeRequest = new SubscribeRequest();
            subscribeRequest.SubscribeOptions = so;
            subscribeRequest.PreviewOptions = po;

            Account acc = new Account();
            acc.Id = accountId;
            subscribeRequest.Account = acc;

            SubscriptionData subData = new SubscriptionData();
            sub.AccountId = accountId;
            subData.Subscription = sub;

            List<RatePlanData> rpdList = new List<RatePlanData>();

            foreach (ProductRatePlanHolder prph in productRatePlans)
            {

                RatePlanData ratePlanData = new RatePlanData();
                RatePlan ratePlan = new RatePlan();
                ratePlan.ProductRatePlanId = prph.ProductRatePlan.Id;
                ratePlanData.RatePlan = ratePlan;
                List<RatePlanChargeData> rpcData = new List<RatePlanChargeData>();
                foreach(ProductRatePlanChargeHolder prpch in prph.ProductRatePlanCharges)
                {
                    ProductRatePlanCharge prpc = prpch.ProductRatePlanCharge;
                    //set quantity and add chargeData if applicable
                    if ((prpc.ChargeModel.Equals("Per Unit Pricing") || prpc.ChargeModel.Equals("Tiered Pricing") || prpc.ChargeModel.Equals("Volume Pricing")))
                    {
                        RatePlanChargeData ratePlanChargeData = new RatePlanChargeData();
                        RatePlanCharge ratePlanCharge = new RatePlanCharge();
                        ratePlanCharge.ProductRatePlanChargeId = prpc.Id;
                        ratePlanCharge.QuantitySpecified = true;
                        ratePlanCharge.Quantity = prpc.DefaultQuantity;
                        ratePlanChargeData.RatePlanCharge = ratePlanCharge;
                        rpcData.Add(ratePlanChargeData);
                    }
                }
                if (rpcData.Count != 0)
                {
                    ratePlanData.RatePlanChargeData = rpcData.ToArray();
                }
                rpdList.Add(ratePlanData);

            }

            subData.RatePlanData = rpdList.ToArray();
            subscribeRequest.SubscriptionData = subData;
            return zs.Subscribe(new List<SubscribeRequest>{subscribeRequest})[0];
        }
        /*public ResponseHolder GetCurrentSubscription(String subscriptionId)
        {
            String subscriptionQuery = "SELECT Id,Name,Status,Version,PreviousSubscriptionId,ContractEffectiveDate,TermStartDate FROM Subscription WHERE AccountId='" + subscriptionId + "' AND Status='Active'AND Status='Active'";
            Subscription activeSubscription = (Subscription)zs.Query(subscriptionQuery).Objects[0];

            String RatePlanString = "SELECT Id,Name,ProductRatePlanId FROM RatePlan WHERE SubscriptionId='" + activeSubscription.Id + "'";
            ResponseHolder ratePlans = zs.Query(RatePlanString);

            foreach (zObject ratePlan in ratePlans.Objects)
            {

            }
        }*/
        public SubscribeResponseHolder Subscribe(Account acc, Contact con, PaymentMethod pay, List<ProductRatePlanHolder> productRatePlans, Subscription sub, PreviewOptions po, SubscribeOptions so)
        {
            SubscribeRequest subscribeRequest = new SubscribeRequest();
            subscribeRequest.SubscribeOptions = so;
            subscribeRequest.PreviewOptions = po;

            subscribeRequest.Account = acc;
            subscribeRequest.BillToContact = con;
            //Payment Method isn't required to subscribe
            if (pay != null)
            {
                subscribeRequest.PaymentMethod = pay;
            }

            SubscriptionData subData = new SubscriptionData();
            sub.AccountId = acc.Id;
            subData.Subscription = sub;
            List<RatePlanData> rpdList = new List<RatePlanData>();

            foreach (ProductRatePlanHolder prph in productRatePlans)
            {

                RatePlanData ratePlanData = new RatePlanData();
                RatePlan ratePlan = new RatePlan();
                ratePlan.ProductRatePlanId = prph.ProductRatePlan.Id;
                ratePlanData.RatePlan = ratePlan;
                List<RatePlanChargeData> rpcData = new List<RatePlanChargeData>();
                if (prph.ProductRatePlanCharges != null)
                {
                    foreach (ProductRatePlanChargeHolder prpch in prph.ProductRatePlanCharges)
                    {
                        ProductRatePlanCharge prpc = prpch.ProductRatePlanCharge;
                        //set quantity and add chargeData if applicable
                        if ((prpc.ChargeModel.Equals("Per Unit Pricing") || prpc.ChargeModel.Equals("Tiered Pricing") || prpc.ChargeModel.Equals("Volume Pricing")))
                        {
                            RatePlanChargeData ratePlanChargeData = new RatePlanChargeData();
                            RatePlanCharge ratePlanCharge = new RatePlanCharge();
                            ratePlanCharge.ProductRatePlanChargeId = prpc.Id;
                            ratePlanCharge.QuantitySpecified = true;
                            ratePlanCharge.Quantity = prpc.DefaultQuantity;
                            ratePlanChargeData.RatePlanCharge = ratePlanCharge;
                            rpcData.Add(ratePlanChargeData);
                        }
                    }
                }
                if (rpcData.Count != 0)
                {
                    ratePlanData.RatePlanChargeData = rpcData.ToArray();
                }
                rpdList.Add(ratePlanData);

            }

            subData.RatePlanData = rpdList.ToArray();
            subscribeRequest.SubscriptionData = subData;
            return zs.Subscribe(new List<SubscribeRequest> { subscribeRequest })[0];
        }
Beispiel #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GetPagesRequest"/> class.
 /// </summary>
 /// <param name="options">Document preview options</param>
 public GetPagesRequest(PreviewOptions options)
 {
     this.options = options;
 }