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