├── launcher-csharp ├── wwwroot │ ├── js │ │ ├── site.min.js │ │ └── site.js │ ├── favicon.png │ ├── images │ │ └── header.png │ ├── lib │ │ ├── bootstrap │ │ │ ├── dist │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── js │ │ │ │ │ └── npm.js │ │ │ ├── .bower.json │ │ │ └── LICENSE │ │ ├── jquery-validation-unobtrusive │ │ │ ├── .bower.json │ │ │ └── LICENSE.txt │ │ ├── jquery │ │ │ ├── .bower.json │ │ │ └── LICENSE.txt │ │ └── jquery-validation │ │ │ ├── .bower.json │ │ │ └── LICENSE.md │ └── css │ │ ├── site.min.css │ │ └── site.css ├── _ViewStart.cshtml ├── Views │ ├── _ViewStart.cshtml │ ├── _ViewImports.cshtml │ └── Shared │ │ ├── mustAuthenticate.cshtml │ │ ├── example_done.cshtml │ │ ├── Error.cshtml │ │ ├── dsReturn.cshtml │ │ ├── PermissionProfileView.cshtml │ │ └── LinkToMethodView.cshtml ├── libman.json ├── Terms_of_service.pdf ├── World_Wide_Corp_fields.pdf ├── World_Wide_Corp_lorem.pdf ├── World_Wide_Corp_salary.docx ├── World_Wide_Corp_Web_Form.pdf ├── Offer_Letter_Dynamic_Table.docx ├── World_Wide_Corp_fields_shown.docx ├── _ViewImports.cshtml ├── World_Wide_Corp_Battle_Plan_Trafalgar.docx ├── UserData.csv ├── appsettings.Development.json ├── Rooms │ ├── Views │ │ ├── CreateExternalFormFillSession │ │ │ ├── Embed.cshtml │ │ │ ├── Reg006.cshtml │ │ │ └── Shared │ │ │ │ ├── CreateExternalFormFillSessionView.cshtml │ │ │ │ └── SelectRoomView.cshtml │ │ ├── AddingFormToRoom │ │ │ ├── ExampleNotAvailable.cshtml │ │ │ ├── Reg004.cshtml │ │ │ └── Shared │ │ │ │ └── AddFormView.cshtml │ │ ├── CreateRoomWithData │ │ │ ├── Reg001.cshtml │ │ │ └── Shared │ │ │ │ └── CreateRoomView.cshtml │ │ ├── CreateFormGroups │ │ │ ├── Reg007.cshtml │ │ │ └── Shared │ │ │ │ └── CreateFromGroupView.cshtml │ │ ├── ExportDataFromRoom │ │ │ ├── Reg003.cshtml │ │ │ └── Shared │ │ │ │ └── ExportDataView.cshtml │ │ ├── GetRoomsWithFilters │ │ │ ├── Reg005.cshtml │ │ │ └── Shared │ │ │ │ └── GetFilteredRoomsView.cshtml │ │ ├── AssignFormToFormGroups │ │ │ └── Reg009.cshtml │ │ ├── CreateRoomFromTemplate │ │ │ ├── Reg002.cshtml │ │ │ └── Shared │ │ │ │ └── CreateRoomView.cshtml │ │ └── GrantOfficeAccessToFormGroup │ │ │ └── Reg008.cshtml │ └── Models │ │ ├── FormGroupModel.cs │ │ ├── RoomsListModel.cs │ │ ├── RoomModel.cs │ │ ├── RoomFormModel.cs │ │ ├── OfficeAccessModel.cs │ │ ├── RoomDocumentModel.cs │ │ ├── FormFormGroupModel.cs │ │ └── RoomFilterModel.cs ├── Maestro │ ├── Views │ │ ├── Mae001TriggerWorkflow │ │ │ ├── publishWorkflow.cshtml │ │ │ └── embed.cshtml │ │ ├── Mae003ResumeWorkflow │ │ │ └── mae003.cshtml │ │ ├── Mae002PauseWorkflow │ │ │ └── mae002.cshtml │ │ └── Mae004CancelWorkflowInstance │ │ │ └── mae004.cshtml │ └── Examples │ │ ├── PauseWorkflow.cs │ │ ├── ResumeWorkflow.cs │ │ └── CancelWorkflowInstance.cs ├── WebForms │ └── Views │ │ ├── CreateAndEmbedForm │ │ ├── embedForm.cshtml │ │ └── web001.cshtml │ │ └── CreateRemoteInstance │ │ ├── createWebForm.cshtml │ │ └── web002.cshtml ├── eSignature │ ├── Models │ │ ├── RecipientModel.cs │ │ ├── ErrorViewModel.cs │ │ ├── PermissionProfileModel.cs │ │ ├── ModelsToReadManifest │ │ │ ├── Inputs.cs │ │ │ ├── LinkToAPIMethods.cs │ │ │ ├── AdditionalPage.cs │ │ │ ├── SelectAPIPage.cs │ │ │ ├── CustomErrorTexts.cs │ │ │ ├── APIs.cs │ │ │ ├── Forms.cs │ │ │ ├── RedirectsToOtherCodeExamples.cs │ │ │ ├── ManifestStructure.cs │ │ │ ├── LoginPage.cs │ │ │ ├── ManifestGroup.cs │ │ │ ├── CodeExampleText.cs │ │ │ └── SupportingTexts.cs │ │ ├── EnvelopeDocuments.cs │ │ ├── User.cs │ │ ├── EnvelopeDocItem.cs │ │ ├── Locals.cs │ │ ├── AccountRoleSettingsExtension.cs │ │ ├── Session.cs │ │ └── DSConfiguration.cs │ ├── Views │ │ ├── CreatePermissionProfile │ │ │ └── Eg024.cshtml │ │ ├── ChangePermissionSingleSetting │ │ │ └── Eg026.cshtml │ │ ├── ListAccountEnvelopes │ │ │ └── eg003.cshtml │ │ ├── CreateNewTemplate │ │ │ └── eg008.cshtml │ │ ├── DeleteRestoreEnvelope │ │ │ ├── restoreEnvelope.cshtml │ │ │ └── Eg045.cshtml │ │ ├── Eg039InPersonSigning │ │ │ └── Eg039.cshtml │ │ ├── DeletePermission │ │ │ └── Eg027.cshtml │ │ ├── ListEnvelopeRecipients │ │ │ └── eg005.cshtml │ │ ├── ListEnvelopeDocuments │ │ │ └── eg006.cshtml │ │ ├── GetCustomFields │ │ │ └── eg018.cshtml │ │ ├── GetEnvelopeTabData │ │ │ └── eg015.cshtml │ │ ├── GetEnvelopeInformation │ │ │ └── eg004.cshtml │ │ ├── SetUserGroupPermission │ │ │ └── Eg025.cshtml │ │ ├── ShowEmbeddedConsole │ │ │ └── eg012.cshtml │ │ ├── UnpauseSignatureWorkflow │ │ │ └── Eg033.cshtml │ │ ├── CreateBrand │ │ │ └── eg028.cshtml │ │ ├── RecipientAuthKBA │ │ │ └── eg022.cshtml │ │ ├── RecipientAuthIDV │ │ │ └── eg023.cshtml │ │ ├── FocusedView │ │ │ └── eg044.cshtml │ │ ├── EmbeddedSigningCeremony │ │ │ └── eg001.cshtml │ │ └── SetEnvelopeTabValue │ │ │ └── eg016.cshtml │ └── Examples │ │ ├── ListEnvelopeDocuments.cs │ │ ├── DeletePermission.cs │ │ ├── ListEnvelopeRecipients.cs │ │ └── GetEnvelopeInformation.cs ├── Program.cs ├── stylecop.json ├── Monitor │ ├── Models │ │ └── MonitorFilterModel.cs │ └── Views │ │ └── GetMonitoringData │ │ └── Meg001.cshtml ├── GlobalSuppressions.cs ├── Admin │ ├── Views │ │ ├── AuditUsers │ │ │ ├── Aeg005.cshtml │ │ │ └── Aeg05.cshtml │ │ ├── ImportUser │ │ │ ├── Aeg004.cshtml │ │ │ └── Aeg04.cshtml │ │ ├── BulkExportUserData │ │ │ ├── Aeg003.cshtml │ │ │ └── Aeg03.cshtml │ │ ├── RetrieveDocuSignProfileByEmailAddress │ │ │ ├── Aeg006.cshtml │ │ │ └── Aeg06.cshtml │ │ ├── RetrieveDocuSignProfileByUserId │ │ │ ├── Aeg007.cshtml │ │ │ └── Aeg07.cshtml │ │ ├── DeleteUserDataFromOrganization │ │ │ └── Aeg010.cshtml │ │ ├── DeleteUserDataFromAccount │ │ │ └── Aeg011.cshtml │ │ ├── DeleteUserProductPermissionProfile │ │ │ ├── Aeg009.cshtml │ │ │ └── Aeg09.cshtml │ │ └── CreateAccount │ │ │ └── Aeg013.cshtml │ └── Examples │ │ └── RetrieveDocuSignProfileByUserId.cs ├── Properties │ └── launchSettings.json ├── Click │ ├── Views │ │ ├── RetrieveClickwraps │ │ │ ├── Ceg004.cshtml │ │ │ └── ClickEg04.cshtml │ │ ├── EmbedClickwrap │ │ │ └── Embed.cshtml │ │ ├── CreateClickwrap │ │ │ ├── Ceg001.cshtml │ │ │ └── ClickEg01.cshtml │ │ └── GetClickwrapResponses │ │ │ ├── Ceg005.cshtml │ │ │ └── ClickEg05.cshtml │ └── Examples │ │ ├── RetrieveClickwraps.cs │ │ └── GetClickwrapResponses.cs ├── Navigator │ └── Views │ │ ├── Nav001ListAgreements │ │ └── nav001.cshtml │ │ └── Nav002GetSingleAgreement │ │ └── nav002.cshtml ├── Common │ ├── SetViewBagAttribute.cs │ ├── SessionExtensions.cs │ ├── MustAuthenticateAttribute.cs │ ├── IRequestItemsService.cs │ └── Languages.cs ├── Connect │ ├── Examples │ │ └── HMACValidation.cs │ ├── Controllers │ │ └── ValidateWebhookMessage.cs │ └── Views │ │ └── ValidateWebhookMessage │ │ └── Con001.cshtml ├── doc_1.html ├── Workspaces │ ├── Examples │ │ ├── CreateWorkspace.cs │ │ └── AddDocumentToWorkspaces.cs │ └── Views │ │ └── Work001CreateWorkspace │ │ └── work001.cshtml ├── appsettings.example.json └── ConnectWebhookHMACValidation.cs ├── Terms_of_service.docx ├── docs └── stripe_skip_account_form_link.png ├── JWT-Console ├── App.config.Example ├── JWT-Console.sln └── JWT-Console.csproj ├── Quick_ACG ├── Common │ └── IRequestItemsService.cs ├── Properties │ └── launchSettings.json ├── Quick_ACG.sln ├── Program.cs └── eSignature │ └── Controllers │ └── DSController.cs ├── .github └── workflows │ └── dotnet.yml ├── launcher-csharp.Tests ├── TestConfig │ └── ITestConfig.cs ├── eSignatureUnitTests │ ├── CreateBrandUnitTests.cs │ └── SetEnvelopeTabValueUnitTests.cs └── launcher-csharp.Tests.csproj ├── PAYMENTS_INSTALLATION.md ├── LICENSE └── DSHelper.cs /launcher-csharp/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /launcher-csharp/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /launcher-csharp/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /Terms_of_service.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/Terms_of_service.docx -------------------------------------------------------------------------------- /launcher-csharp/libman.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "defaultProvider": "cdnjs", 4 | "libraries": [] 5 | } -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/favicon.png -------------------------------------------------------------------------------- /docs/stripe_skip_account_form_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/docs/stripe_skip_account_form_link.png -------------------------------------------------------------------------------- /launcher-csharp/Terms_of_service.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/Terms_of_service.pdf -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_fields.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_fields.pdf -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_lorem.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_lorem.pdf -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_salary.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_salary.docx -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/images/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/images/header.png -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_Web_Form.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_Web_Form.pdf -------------------------------------------------------------------------------- /launcher-csharp/Offer_Letter_Dynamic_Table.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/Offer_Letter_Dynamic_Table.docx -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_fields_shown.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_fields_shown.docx -------------------------------------------------------------------------------- /launcher-csharp/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using DocuSign.CodeExamples 2 | @using DocuSign.CodeExamples.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /launcher-csharp/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using DocuSign.CodeExamples 2 | @using DocuSign.CodeExamples.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /launcher-csharp/World_Wide_Corp_Battle_Plan_Trafalgar.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/World_Wide_Corp_Battle_Plan_Trafalgar.docx -------------------------------------------------------------------------------- /launcher-csharp/UserData.csv: -------------------------------------------------------------------------------- 1 | AccountID,FirstName,LastName,UserEmail,PermissionSet 2 | {account_id},First1,Last1,example1@sampleemail.example,DS Admin 3 | {account_id},First2,Last2,example2@sampleemail.example,DS Admin -------------------------------------------------------------------------------- /launcher-csharp/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/docusign/code-examples-csharp/master/launcher-csharp/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateExternalFormFillSession/Embed.cshtml: -------------------------------------------------------------------------------- 1 |

@ViewBag.h1

2 |

@Html.Raw(ViewBag.message)

3 | 4 | @ViewBag.JsonUrl 5 | 6 | 9 | 10 | 11 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

-------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/FormGroupModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | public class FormGroupModel 8 | { 9 | public string Name { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Views/Mae001TriggerWorkflow/publishWorkflow.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @Html.Raw(ViewBag.ConsentLink) 5 |

6 | 7 |
8 | 9 |
-------------------------------------------------------------------------------- /JWT-Console/App.config.Example: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /launcher-csharp/WebForms/Views/CreateAndEmbedForm/embedForm.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @ViewBag.Description 5 |

6 | 7 |
8 | 9 |
10 | 11 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/RecipientModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | public class RecipientModel 8 | { 9 | public string Email { get; set; } 10 | 11 | public string Name { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Views/Mae001TriggerWorkflow/embed.cshtml: -------------------------------------------------------------------------------- 1 |

@ViewBag.h1

2 |

@Html.Raw(ViewBag.message)

3 | 4 | 5 | 8 | 10 | 13 | 14 | 15 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

-------------------------------------------------------------------------------- /launcher-csharp/WebForms/Views/CreateRemoteInstance/createWebForm.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @ViewBag.Description 5 |

6 | 7 |
8 | 9 |
10 | 11 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/AddingFormToRoom/ExampleNotAvailable.cshtml: -------------------------------------------------------------------------------- 1 |

4. Adds form to a room.

2 |

3 | Problem: This example is not available. 4 |

5 |

6 | DocuSign Forms is not enabled for your DocuSign account. Please contact DocuSign Rooms Support to enable Forms. 7 |

8 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using System; 8 | 9 | public class ErrorViewModel 10 | { 11 | public string RequestId { get; set; } 12 | 13 | public bool ShowRequestId => !string.IsNullOrEmpty(this.RequestId); 14 | } 15 | } -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/RoomsListModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System.Collections.Generic; 8 | using DocuSign.Rooms.Model; 9 | 10 | public class RoomsListModel 11 | { 12 | public int RoomId { get; set; } 13 | 14 | public List Rooms { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/PermissionProfileModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | public class PermissionProfileModel 8 | { 9 | public string ProfileId { get; set; } 10 | 11 | public string ProfileName { get; set; } 12 | 13 | public AccountRoleSettingsModel AccountRoleSettingsModel { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/RoomModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System.Collections.Generic; 8 | using DocuSign.Rooms.Model; 9 | 10 | public class RoomModel 11 | { 12 | public string Name { get; set; } 13 | 14 | public int TemplateId { get; set; } 15 | 16 | public List Templates { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/Inputs.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class Inputs 10 | { 11 | [JsonProperty("InputName")] 12 | public string InputName { get; set; } 13 | 14 | [JsonProperty("InputPlaceholder")] 15 | public string InputPlaceholder { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Quick_ACG/Common/IRequestItemsService.cs: -------------------------------------------------------------------------------- 1 | using DocuSign.CodeExamples.Models; 2 | 3 | namespace DocuSign.CodeExamples 4 | { 5 | public interface IRequestItemsService 6 | { 7 | public string EgName { get; set; } 8 | 9 | public Session Session { get; set; } 10 | 11 | public User User { get; set; } 12 | 13 | public string EnvelopeId { get; set; } 14 | 15 | public string Status { get; set; } 16 | 17 | public void Logout(); 18 | 19 | public bool CheckToken(int bufferMin); 20 | } 21 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/LinkToAPIMethods.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class LinkToApiMethods 10 | { 11 | [JsonProperty("Path")] 12 | public string Path { get; set; } 13 | 14 | [JsonProperty("PathName")] 15 | public string PathName { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/AdditionalPage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class AdditionalPage 10 | { 11 | [JsonProperty("Name")] 12 | public string Name { get; set; } 13 | 14 | [JsonProperty("ResultsPageText")] 15 | public string ResultsPageText { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/EnvelopeDocuments.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | public class EnvelopeDocuments 13 | { 14 | public string EnvelopeId { get; set; } 15 | 16 | public List Documents { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/User.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using System; 8 | 9 | public class User 10 | { 11 | public string Name { get; set; } 12 | 13 | public string AccessToken { get; set; } 14 | 15 | public string RefreshToken { get; set; } 16 | 17 | public DateTime? ExpireIn { get; set; } 18 | 19 | public string AccountId { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/SelectAPIPage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class SelectApiPage 10 | { 11 | [JsonProperty("SelectAPIcHeader")] 12 | public string SelectApiHeader { get; set; } 13 | 14 | [JsonProperty("SelectAPIButton")] 15 | public string SelectApiButton { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/CustomErrorTexts.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class CustomErrorTexts 10 | { 11 | [JsonProperty("ErrorMessageCheck")] 12 | public string ErrorMessageCheck { get; set; } 13 | 14 | [JsonProperty("ErrorMessage")] 15 | public string ErrorMessage { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery-validation-unobtrusive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation-unobtrusive", 3 | "homepage": "https://github.com/aspnet/jquery-validation-unobtrusive", 4 | "version": "3.2.9", 5 | "_release": "3.2.9", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v3.2.9", 9 | "commit": "a91f5401898e125f10771c5f5f0909d8c4c82396" 10 | }, 11 | "_source": "https://github.com/aspnet/jquery-validation-unobtrusive.git", 12 | "_target": "^3.2.9", 13 | "_originalSource": "jquery-validation-unobtrusive", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/APIs.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using System.Collections.Generic; 8 | using Newtonsoft.Json; 9 | 10 | public class ApIs 11 | { 12 | [JsonProperty("Groups")] 13 | public List Groups { get; } = new List(); 14 | 15 | [JsonProperty("Name")] 16 | public string Name { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/Forms.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using System.Collections.Generic; 8 | using Newtonsoft.Json; 9 | 10 | public class Forms 11 | { 12 | [JsonProperty("FormName")] 13 | public string FormName { get; set; } 14 | 15 | [JsonProperty("Inputs")] 16 | public List Inputs { get; } = new List(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/EnvelopeDocItem.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | public class EnvelopeDocItem 13 | { 14 | public string Name { get; set; } 15 | 16 | public string Type { get; set; } 17 | 18 | public string DocumentId { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/RoomFormModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using DocuSign.Rooms.Model; 10 | 11 | public class RoomFormModel 12 | { 13 | public int RoomId { get; set; } 14 | 15 | public List Rooms { get; set; } 16 | 17 | public Guid FormId { get; set; } 18 | 19 | public List Forms { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/RedirectsToOtherCodeExamples.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class RedirectsToOtherCodeExamples 10 | { 11 | [JsonProperty("CodeExampleToRedirectTo")] 12 | public int CodeExampleToRedirectTo { get; set; } 13 | 14 | [JsonProperty("RedirectText")] 15 | public string RedirectText { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/OfficeAccessModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System.Collections.Generic; 8 | using DocuSign.Rooms.Model; 9 | 10 | public class OfficeAccessModel 11 | { 12 | public List Offices { get; set; } 13 | 14 | public List FormGroups { get; set; } 15 | 16 | public string FormGroupId { get; set; } 17 | 18 | public int? OfficeId { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/ManifestStructure.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using System.Collections.Generic; 8 | using Newtonsoft.Json; 9 | 10 | public class ManifestStructure 11 | { 12 | [JsonProperty("SupportingTexts")] 13 | public SupportingTexts SupportingTexts { get; set; } 14 | 15 | [JsonProperty("APIs")] 16 | public List ApIs { get; } = new List(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/Program.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples 6 | { 7 | using Microsoft.AspNetCore; 8 | using Microsoft.AspNetCore.Hosting; 9 | 10 | public class Program 11 | { 12 | public static void Main(string[] args) 13 | { 14 | CreateWebHostBuilder(args).Build().Run(); 15 | } 16 | 17 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 18 | WebHost.CreateDefaultBuilder(args).UseStartup(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/RoomDocumentModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using DocuSign.Rooms.Model; 10 | 11 | public class RoomDocumentModel 12 | { 13 | public int? RoomId { get; set; } 14 | 15 | public List Rooms { get; set; } 16 | 17 | public Guid DocumentId { get; set; } 18 | 19 | public List Documents { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/LoginPage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class LoginPage 10 | { 11 | [JsonProperty("LoginHeader")] 12 | public string LoginHeader { get; set; } 13 | 14 | [JsonProperty("LoginButton")] 15 | public string LoginButton { get; set; } 16 | 17 | [JsonProperty("LoginHelperText")] 18 | public string LoginHelperText { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /launcher-csharp/stylecop.json: -------------------------------------------------------------------------------- 1 | { 2 | // ACTION REQUIRED: This file was automatically added to your project, but it 3 | // will not take effect until additional steps are taken to enable it. See the 4 | // following page for additional information: 5 | // 6 | // https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/EnableConfiguration.md 7 | 8 | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", 9 | "settings": { 10 | "documentationRules": { 11 | "companyName": "Docusign" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/FormFormGroupModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using DocuSign.Rooms.Model; 10 | 11 | public class FormFormGroupModel 12 | { 13 | public string FormGroupId { get; set; } 14 | 15 | public List FormGroups { get; set; } 16 | 17 | public Guid FormId { get; set; } 18 | 19 | public List Forms { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateRoomWithData/Reg001.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.CreateRoomWithData 2 | 3 |

1. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "CreateRoomWithData.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/AddingFormToRoom/Reg004.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.AddingFormToRoom 2 | 3 |

4. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "AddingFormToRoom.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateFormGroups/Reg007.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.CreateFormGroups 2 | 3 |

7. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "CreateFormGroups.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/ExportDataFromRoom/Reg003.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.ExportDataFromRoom 2 | 3 |

3. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "ExportDataFromRoom.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/GetRoomsWithFilters/Reg005.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.GetRoomsWithFilters 2 | 3 |

5. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "GetRoomsWithFilters.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/ManifestGroup.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using System.Collections.Generic; 8 | using DocuSign.CodeExamples.ESignature.Models; 9 | using Newtonsoft.Json; 10 | 11 | public class ManifestGroup 12 | { 13 | [JsonProperty("Examples")] 14 | public List Examples { get; } = new List(); 15 | 16 | [JsonProperty("Name")] 17 | public string Name { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/AssignFormToFormGroups/Reg009.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.AssignFormToFormGroups 2 | 3 |

9. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "AssignFormToFormGroups.cs" 14 | ) 15 | ) 16 |

17 | 18 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/Locals.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | public class Locals 13 | { 14 | public DsConfiguration DsConfig { get; set; } 15 | 16 | public User User { get; set; } 17 | 18 | public Session Session { get; set; } 19 | 20 | public string Messages { get; set; } 21 | 22 | public object Json { get; internal set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "^3.3.1", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Models/RoomFilterModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Rooms.Models 6 | { 7 | using System; 8 | 9 | public class RoomFilterModel 10 | { 11 | public RoomFilterModel() 12 | { 13 | this.FieldDataChangedStartDate = DateTimeOffset.Now.AddDays(-10); 14 | this.FieldDataChangedEndDate = DateTimeOffset.Now; 15 | } 16 | 17 | public DateTimeOffset FieldDataChangedStartDate { get; set; } 18 | 19 | public DateTimeOffset FieldDataChangedEndDate { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateRoomFromTemplate/Reg002.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.CreateRoomFromTemplate 2 | 3 |

2. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "CreateRoomFromTemplate.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/GrantOfficeAccessToFormGroup/Reg008.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.GrantOfficeAccessToFormGroup 2 | 3 |

8. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "GrantOfficeAccessToFormGroup.cs" 14 | ) 15 | ) 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /launcher-csharp/Monitor/Models/MonitorFilterModel.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Monitor.Models 6 | { 7 | using System; 8 | 9 | public class MonitorFilterModel 10 | { 11 | public MonitorFilterModel() 12 | { 13 | this.FieldDataChangedStartDate = DateTimeOffset.Now.AddDays(-10); 14 | this.FieldDataChangedEndDate = DateTimeOffset.Now; 15 | } 16 | 17 | public DateTimeOffset FieldDataChangedStartDate { get; set; } 18 | 19 | public DateTimeOffset FieldDataChangedEndDate { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/AccountRoleSettingsExtension.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | using DocuSign.eSign.Model; 8 | 9 | /// 10 | /// Temporary subclass for AccountRoleSettings 11 | /// This class is needed for now until DCM-3905 is ready 12 | /// 13 | public class AccountRoleSettingsExtension : AccountRoleSettings 14 | { 15 | [System.Runtime.Serialization.DataMember(Name = "signingUIVersion", EmitDefaultValue = false)] 16 | public string SigningUiVersion { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/Session.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | public class Session 8 | { 9 | public string AccountId { get; set; } 10 | 11 | public string AccountName { get; set; } 12 | 13 | public string BasePath { get; set; } 14 | 15 | public string WebFormsBasePath { get; set; } 16 | 17 | public string RoomsApiBasePath { get; set; } 18 | 19 | public string AdminApiBasePath { get; set; } 20 | 21 | public string MaestroApiBasePath { get; set; } 22 | 23 | public string IamBasePath { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /launcher-csharp/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | using System.Diagnostics.CodeAnalysis; 6 | 7 | [assembly: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:Fields should be private", Justification = "The class in question is used as static", Scope = "member", Target = "~F:DocuSign.CodeExamples.Common.Languages.SupportedLanguages")] 8 | [assembly: SuppressMessage("StyleCop.CSharp.SpacingRules", "SA1005:Single line comments should begin with single space", Justification = "Specific comments for DocuSign tools", Scope = "member", Target = "~M:DocuSign.CodeExamples.Admin.Controllers.CreateClmeSignUser.InitializeInternal")] 9 | -------------------------------------------------------------------------------- /launcher-csharp/WebForms/Views/CreateRemoteInstance/web002.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 |

3 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 4 |

5 | 6 | 7 | 8 |

9 | @Html.Raw( 10 | @String.Format( 11 | ViewBag.SupportingTexts.ViewSourceFile, 12 | "CreateAndEmbedFormService.cs" 13 | ) 14 | ) 15 |

16 | 17 | 18 |
19 | 20 |
21 | 22 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/AuditUsers/Aeg005.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Admin.Controllers.AuditUsers 2 | 3 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "AuditUsers.cs" 14 | ) 15 | ) 16 |

17 | 18 |
19 | 20 |
21 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/AuditUsers/Aeg05.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Admin.Controllers.AuditUsers 2 | 3 |

5. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "AuditUsers.cs" 14 | ) 15 | ) 16 |

17 | 18 |
19 | 20 |
21 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/CreatePermissionProfile/Eg024.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Controllers.CreatePermissionProfile 2 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 | 7 | @if (ViewBag.showDoc == true) 8 | { 9 |

Documentation about this example

10 | } 11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "CreatePermissionProfile.cs" 18 | ) 19 | ) 20 |

21 | 22 | 23 | -------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/mustAuthenticate.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_HomeLayout"; 3 | } 4 |
5 | @Html.Raw(ViewBag.SupportingTexts.LoginPage.LoginHeader) 6 |
7 | @Html.DropDownList("authType", new SelectList(new Dictionary 8 | { 9 | { "CodeGrant", "Authorization Code Grant" }, 10 | { "JWT", "JWT (JSON Web Token)" } 11 | }, 12 | "Key", "Value", "en"), 13 | new { @class = "form-control", @required = "required" }) 14 |
15 | 16 | 17 |
18 |

@Html.Raw(ViewBag.SupportingTexts.LoginPage.LoginHelperText)

19 |
-------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/ChangePermissionSingleSetting/Eg026.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Controllers.ChangePermissionSingleSetting 2 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 | 4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | @if (ViewBag.showDoc == true) 9 | { 10 |

Documentation about this example

11 | } 12 | 13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "ChangePermissionSingleSetting.cs" 20 | ) 21 | ) 22 |

23 | 24 | 25 | -------------------------------------------------------------------------------- /Quick_ACG/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": true, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:8080", 7 | "sslPort": 44333 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | }, 17 | "applicationUrl": "https://localhost:8080;http://localhost:5000" 18 | }, 19 | "CodeExamples": { 20 | "commandName": "Project", 21 | "launchBrowser": true, 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | }, 25 | "applicationUrl": "https://localhost:44333;http://localhost:5002" 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/ListAccountEnvelopes/eg003.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 |

3 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 4 |

5 | 6 | @if (@ViewBag.showDoc) { 7 |

Documentation about this example

8 | } 9 | 10 | 11 |

12 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "ListAccountEnvelopes.cs")) 13 |

14 | 15 |
16 | 17 | 18 |
19 | 20 | -------------------------------------------------------------------------------- /launcher-csharp/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": true, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:8080", 7 | "sslPort": 44333 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "applicationUrl": "https://localhost:8080;http://localhost:5000", 15 | "environmentVariables": { 16 | "ASPNETCORE_ENVIRONMENT": "Development" 17 | } 18 | }, 19 | "CodeExamples": { 20 | "commandName": "Project", 21 | "launchBrowser": true, 22 | "applicationUrl": "https://localhost:44333;http://localhost:5002", 23 | "environmentVariables": { 24 | "ASPNETCORE_ENVIRONMENT": "Development" 25 | } 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/RetrieveClickwraps/Ceg004.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.RetrieveClickwraps 2 | 3 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "RetrieveClickwraps.cs" 14 | ) 15 | ) 16 |

17 | 18 |
19 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/RetrieveClickwraps/ClickEg04.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.RetrieveClickwraps 2 | 3 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "RetrieveClickwraps.cs" 14 | ) 15 | ) 16 |

17 | 18 |
19 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /launcher-csharp/Navigator/Views/Nav001ListAgreements/nav001.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 |

3 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 4 |

5 | 6 | @if (ViewBag.showDoc == true) 7 | { 8 |

Documentation about this example

9 | } 10 | 11 | 12 | 13 |

14 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "NavigatorMethods.cs")) 15 |

16 | 17 |
18 | 19 | 20 |
21 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateRoomWithData/Shared/CreateRoomView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomModel 2 | @{ 3 | int formNumber = 0; 4 | int roomNameInputNumber = 0; 5 | } 6 | 7 |
8 |
9 | 12 | 13 | 15 |
16 | 17 | 18 |
-------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateExternalFormFillSession/Reg006.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Controllers.CreateExternalFormFillSession 2 | 3 |

6. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

4 |

5 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 6 |

7 | 8 | 9 |

10 | @Html.Raw( 11 | @String.Format( 12 | ViewBag.SupportingTexts.ViewSourceFile, 13 | "CreateExternalFormFillSession.cs" 14 | ) 15 | ) 16 |

17 | 18 | @if (Model.RoomDocumentModel.RoomId == null) 19 | { 20 | 21 | } 22 | else 23 | { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateFormGroups/Shared/CreateFromGroupView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.FormGroupModel 2 | @{ 3 | int formNumber = 0; 4 | int roomNameInputNumber = 0; 5 | } 6 | 7 |
8 |
9 | 12 | 13 | 15 |
16 | 17 | 18 |
-------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/example_done.cshtml: -------------------------------------------------------------------------------- 1 |

@ViewBag.h1

2 |

@Html.Raw(ViewBag.message)

3 | 4 | @if (ViewBag.Locals != null && ViewBag.Locals.Json != null) 5 | { 6 | 7 | 8 |

@ViewBag.Locals.Json

9 | } 10 | 11 | @if (ViewBag.AdditionalLink != null) 12 | { 13 |

@ViewBag.AdditionalLinkText

14 | } 15 | @if (ViewBag.ConfirmAdditionalLink != null) 16 | { 17 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

18 | } 19 | @if (ViewBag.OnlyConfirmAdditionalLink == null) 20 | { 21 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

22 | } 23 | -------------------------------------------------------------------------------- /launcher-csharp/Monitor/Views/GetMonitoringData/Meg001.cshtml: -------------------------------------------------------------------------------- 1 |

1. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 |

3 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 4 |

5 | 6 | @if (@ViewBag.showDoc) 7 | { 8 |

Documentation about this example.

9 | } 10 | 11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "GetMonitoringData.cs" 18 | ) 19 | ) 20 |

21 | 22 |
23 | 24 | 25 |
-------------------------------------------------------------------------------- /launcher-csharp/eSignature/Examples/ListEnvelopeDocuments.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace ESignature.Examples 6 | { 7 | using System.Collections.Generic; 8 | using DocuSign.eSign.Api; 9 | using DocuSign.eSign.Client; 10 | using DocuSign.eSign.Model; 11 | 12 | public static class ListEnvelopeDocuments 13 | { 14 | public class EnvelopeDocItem 15 | { 16 | public string Name { get; set; } 17 | 18 | public string Type { get; set; } 19 | 20 | public string DocumentId { get; set; } 21 | } 22 | 23 | public class EnvelopeDocuments 24 | { 25 | public string EnvelopeId { get; set; } 26 | 27 | public List Documents { get; set; } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/CreateNewTemplate/eg008.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 |

3 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 4 |

5 | 6 | @if (ViewBag.showDoc) { 7 |

Documentation about this example

8 | } 9 | 10 | 11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "CreateNewTemplate.cs" 17 | ) 18 | ) 19 |

20 | 21 |
22 | 23 | 24 |
25 | -------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Problem: an error occurred

6 | 7 | 8 | @if (ViewBag.errorCode != null) 9 | { 10 |

Error information:

11 | 12 | if (ViewBag.fixingInstructions != null) 13 | { 14 |

@Html.Raw(ViewBag.fixingInstructions)

15 | } 16 | 17 | @if (ViewBag.SupportMessage != null) 18 | { 19 |

@Html.Raw(ViewBag.SupportMessage)

20 | } 21 | 22 |

@ViewBag.errorCode: @ViewBag.errorMessage

23 |

@Html.Raw(ViewBag.errorInformation)

24 | } 25 | else 26 | { 27 |

Error information:

28 |

29 |

@ViewBag.err
30 |

31 | 32 | @if (ViewBag.err != null) 33 | { 34 |

Stack trace

35 |

36 |

@ViewBag.err.StackTrace
37 |

38 | } 39 | } 40 | 41 |

Continue

42 | -------------------------------------------------------------------------------- /launcher-csharp/Common/SetViewBagAttribute.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Common 6 | { 7 | using System; 8 | using DocuSign.CodeExamples.Controllers; 9 | using Microsoft.AspNetCore.Mvc.Filters; 10 | 11 | public class SetViewBagAttribute : ActionFilterAttribute 12 | { 13 | public override void OnActionExecuting(ActionExecutingContext context) 14 | { 15 | var egController = context.Controller as EgController; 16 | 17 | if (egController == null) 18 | { 19 | throw new InvalidOperationException("Controller is not of type EgController, attribute is not applicable."); 20 | } 21 | 22 | egController.ViewBag.SupportingTexts = egController.LauncherTexts.ManifestStructure.SupportingTexts; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/EmbedClickwrap/Embed.cshtml: -------------------------------------------------------------------------------- 1 |

@ViewBag.h1

2 |

@Html.Raw(ViewBag.message)

3 |

4 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmbedClickwrapUrl) 5 | 6 | @ViewBag.AgreementUrl 7 | 8 |

9 | 10 |

11 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.NotAgreed) 12 |

13 | 14 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

15 | 16 |
17 | 18 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification\ 2 | for details on configuring this project to bundle and minify static web assets. */ 3 | body { 4 | padding-top: 10px; 5 | padding-bottom: 10px; 6 | } 7 | 8 | /* Wrapping element */ 9 | /* Set some basic padding to keep content from hitting the edges */ 10 | .body-content { 11 | } 12 | 13 | /* Carousel */ 14 | .carousel-caption p { 15 | font-size: 20px; 16 | line-height: 1.4; 17 | } 18 | 19 | /* Make .svg files in the carousel display properly in older browsers */ 20 | .carousel-inner .item img[src$=".svg"] { 21 | width: 100%; 22 | } 23 | 24 | /* QR code generator */ 25 | #qrCode { 26 | margin: 15px; 27 | } 28 | 29 | /* Hide/rearrange for smaller screens */ 30 | @media screen and (max-width: 767px) { 31 | /* Hide captions */ 32 | .carousel-caption { 33 | display: none; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /launcher-csharp/Common/SessionExtensions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Common 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | using Microsoft.AspNetCore.Http; 12 | using Newtonsoft.Json; 13 | 14 | public static class SessionExtensions 15 | { 16 | public static void SetObjectAsJson(this ISession session, string key, object value) 17 | { 18 | session.SetString(key, JsonConvert.SerializeObject(value)); 19 | } 20 | 21 | public static T GetObjectFromJson(this ISession session, string key) 22 | { 23 | var value = session.GetString(key); 24 | 25 | return value == null ? default(T) : JsonConvert.DeserializeObject(value); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/ImportUser/Aeg004.cshtml: -------------------------------------------------------------------------------- 1 | 2 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 | 7 | @if (ViewBag.showDoc == true) 8 | { 9 |

Documentation about this example.

10 | } 11 | 12 | 13 | 14 |

15 | @Html.Raw( 16 | @String.Format( 17 | ViewBag.SupportingTexts.ViewSourceFile, 18 | "Eg04AddUsersBulkImportController.cs" 19 | ) 20 | ) 21 |

22 | 23 |
24 | 25 | 26 |
27 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/ImportUser/Aeg04.cshtml: -------------------------------------------------------------------------------- 1 | 2 |

4. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 | 7 | @if (ViewBag.showDoc == true) 8 | { 9 |

Documentation about this example.

10 | } 11 | 12 | 13 | 14 |

15 | @Html.Raw( 16 | @String.Format( 17 | ViewBag.SupportingTexts.ViewSourceFile, 18 | "Eg04AddUsersBulkImportController.cs" 19 | ) 20 | ) 21 |

22 | 23 |
24 | 25 | 26 |
27 | -------------------------------------------------------------------------------- /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- 1 | name: .NET 2 | 3 | on: 4 | push: 5 | branches: [ "master" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: windows-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v3 16 | - name: Setup .NET 17 | uses: actions/setup-dotnet@v3 18 | with: 19 | dotnet-version: '8.0.x' 20 | - name: setup-msbuild 21 | uses: microsoft/setup-msbuild@v1.1.3 22 | - name: Restore dependencies 23 | run: dotnet restore launcher-csharp.sln 24 | - name: Build 25 | run: dotnet build launcher-csharp.sln --no-restore 26 | - name: Test 27 | env: 28 | CLIENT_ID: ${{ secrets.CLIENT_ID }} 29 | IMPERSONATED_USER_ID: ${{ secrets.IMPERSONATED_USER_ID }} 30 | PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} 31 | SIGNER_EMAIL: ${{ secrets.SIGNER_EMAIL }} 32 | SIGNER_NAME: ${{ secrets.SIGNER_NAME }} 33 | run: dotnet test launcher-csharp.sln --no-build --verbosity normal -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/BulkExportUserData/Aeg003.cshtml: -------------------------------------------------------------------------------- 1 | 2 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 | 7 | 8 | @if (ViewBag.showDoc == true) 9 | { 10 |

Documentation about this example.

11 | } 12 | 13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "BulkExportUserData.cs" 20 | ) 21 | ) 22 |

23 | 24 |
25 | 26 | 27 |
28 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/BulkExportUserData/Aeg03.cshtml: -------------------------------------------------------------------------------- 1 | 2 |

3. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 | 7 | 8 | @if (ViewBag.showDoc == true) 9 | { 10 |

Documentation about this example.

11 | } 12 | 13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "BulkExportUserData.cs" 20 | ) 21 | ) 22 |

23 | 24 |
25 | 26 | 27 |
28 | -------------------------------------------------------------------------------- /launcher-csharp.Tests/TestConfig/ITestConfig.cs: -------------------------------------------------------------------------------- 1 | using DocuSign.eSign.Client; 2 | 3 | namespace launcher_csharp.Tests 4 | { 5 | public interface ITestConfig 6 | { 7 | public string ClientId { get; set; } 8 | 9 | public string Host { get; set; } 10 | 11 | public DocuSignClient ApiClient { get; set; } 12 | 13 | public string AccountId { get; set; } 14 | 15 | public string SignerEmail { get; set; } 16 | 17 | public string SignerName { get; set; } 18 | 19 | public string AccessToken { get; set; } 20 | 21 | public string BasePath { get; set; } 22 | 23 | public string TemplateId { get; set; } 24 | 25 | public string ImpersonatedUserId { get; set; } 26 | 27 | public string OAuthBasePath { get; set; } 28 | 29 | public string PrivateKey { get; set; } 30 | 31 | public string PathToSolution { get; set; } 32 | 33 | public byte[] PrivateKeyBytes { get; set; } 34 | 35 | public void OpenUrlUsingConsoleWindow(string url); 36 | } 37 | } -------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/dsReturn.cshtml: -------------------------------------------------------------------------------- 1 |

Returned data from Docusign!

2 |

Data:

3 | 4 | @if (ViewBag._event != null) 5 | { 6 |

7 | event: @ViewBag._event. This event parameter is supplied by Docusign. 8 | Since it could have been spoofed, don't make business decisions based on 9 | its value. Instead, query Docusign as appropriate. 10 |

11 | } 12 | 13 | @if(ViewBag.envelopeId!=null) { 14 |

15 | envelopeId: @ViewBag.envelopeId. The envelopeId parameter is supplied by Docusign. 16 | Since it could have been spoofed, don't make business decisions based on 17 | its value. Instead, query Docusign as appropriate. 18 |

19 | } 20 | 21 | @if (ViewBag.state != null) { 22 |

23 | state: @ViewBag.state. This example state was sent to Docusign and has now been received back. 24 | It is usually better to store state in your web framework's session. 25 |

26 | } 27 | 28 |

@Html.Raw(ViewBag.SupportingTexts.ContinueButton)

29 | 30 | -------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/PermissionProfileView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Models.PermissionProfileModel 2 | @{ 3 | int formNumber = 0; 4 | int profileNameInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName)

8 | 9 |
10 |
11 | 14 | 16 |
17 | 18 | @Html.HiddenFor(model => model.ProfileId) 19 | @Html.HiddenFor(model => model.AccountRoleSettingsModel.AllowApiAccess) 20 | 21 | 22 | 23 |
-------------------------------------------------------------------------------- /launcher-csharp/Views/Shared/LinkToMethodView.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.EntityFrameworkCore.Migrations 2 | @model DocuSign.CodeExamples.ESignature.Models.CodeExampleText 3 |

4 | @if (Model.LinksToApiMethod.Count != 0) 5 | { 6 | @if (Model.LinksToApiMethod.Count == 1) 7 | { 8 | @Html.Raw(ViewBag.SupportingTexts.ApiMethodUsed) 9 | } 10 | else 11 | { 12 | @Html.Raw(ViewBag.SupportingTexts.ApiMethodUsedPlural) 13 | } 14 | 15 | @for (int i = 0; i < Model.LinksToApiMethod.Count; ++i) 16 | { 17 | @Html.Raw(Model.LinksToApiMethod[i].PathName) 18 | @if (i + 1 == Model.LinksToApiMethod.Count) 19 | { 20 | 21 | } 22 | else if (i + 1 == Model.LinksToApiMethod.Count - 1) 23 | { 24 | and 25 | } 26 | else 27 | { 28 | , 29 | } 30 | } 31 | } 32 |

33 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | 6 | $(document).ready(function () { 7 | $("#Products").on("change", function () { 8 | $list = $("#PermissionProfilesFiltered"); 9 | $.ajax({ 10 | url: "/getPermissionProfiles", 11 | type: "GET", 12 | data: { productId: $("#Products").val() }, 13 | traditional: true, 14 | success: function (result) { 15 | $list.empty(); 16 | $.each(result, function (i, item) { 17 | $list.append(''); 18 | }); 19 | }, 20 | error: function () { 21 | console.warn("Issues with calling the getPermissionProfiles endpoint. Please, check the solution."); 22 | } 23 | }); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /PAYMENTS_INSTALLATION.md: -------------------------------------------------------------------------------- 1 | # Configure a payment gateway 2 | 3 | DocuSign offers built-in connections to multiple payment gateways. The payments code example uses a developer account via the Stripe gateway service. 4 | 5 | 6 | ## Create a Stripe payment gateway 7 | 8 | 1. Select the Stripe button on the [**Payments**](https://admindemo.docusign.com/authenticate?goTo=payments) page in your developer account. 9 | 10 | 1. For development, you can skip the Stripe account application by using the **Skip this account form** link at the top of the page.
11 | 12 | ![Skipping the Stripe account form](docs/stripe_skip_account_form_link.png) 13 | 14 | An enabled Stripe payment gateway is now associated with your DocuSign developer account and is shown under **Payment Gateway**. 15 | 16 | 1. Save the **Gateway Account ID** GUID to the code example launcher configuration file. 17 | 18 | 19 | ## Additional documentation 20 | * [Managing Payment Gateways](https://support.docusign.com/en/guides/managing-payment-gateways) 21 | * [How to send a request for payment](https://developers.docusign.com/docs/esign-rest-api/how-to/request-a-payment) 22 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery-validation/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-validation", 3 | "homepage": "https://jqueryvalidation.org/", 4 | "repository": { 5 | "type": "git", 6 | "url": "git://github.com/jquery-validation/jquery-validation.git" 7 | }, 8 | "authors": [ 9 | "Jörn Zaefferer " 10 | ], 11 | "description": "Form validation made easy", 12 | "main": "dist/jquery.validate.js", 13 | "keywords": [ 14 | "forms", 15 | "validation", 16 | "validate" 17 | ], 18 | "license": "MIT", 19 | "ignore": [ 20 | "**/.*", 21 | "node_modules", 22 | "bower_components", 23 | "test", 24 | "demo", 25 | "lib" 26 | ], 27 | "dependencies": { 28 | "jquery": ">= 1.7.2" 29 | }, 30 | "version": "1.17.0", 31 | "_release": "1.17.0", 32 | "_resolution": { 33 | "type": "version", 34 | "tag": "1.17.0", 35 | "commit": "fc9b12d3bfaa2d0c04605855b896edb2934c0772" 36 | }, 37 | "_source": "https://github.com/jzaefferer/jquery-validation.git", 38 | "_target": "^1.17.0", 39 | "_originalSource": "jquery-validation", 40 | "_direct": true 41 | } -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": "1.9.1 - 3" 33 | }, 34 | "version": "3.3.7", 35 | "_release": "3.3.7", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.7", 39 | "commit": "0b9c4a4007c44201dce9a6cc1a38407005c26c86" 40 | }, 41 | "_source": "https://github.com/twbs/bootstrap.git", 42 | "_target": "v3.3.7", 43 | "_originalSource": "bootstrap", 44 | "_direct": true 45 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2018 DocuSign, Inc. (https://www.docusign.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2016 Twitter, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Quick_ACG/Quick_ACG.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.4.33213.308 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Quick_ACG", "Quick_ACG.csproj", "{753D39F8-CC42-4845-ADC2-92F08C54FD59}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {753D39F8-CC42-4845-ADC2-92F08C54FD59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {753D39F8-CC42-4845-ADC2-92F08C54FD59}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {753D39F8-CC42-4845-ADC2-92F08C54FD59}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {753D39F8-CC42-4845-ADC2-92F08C54FD59}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {D70C90D3-EA3C-4B09-94FD-34A06732E4FF} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /JWT-Console/JWT-Console.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.4.33213.308 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JWT-Console", "JWT-Console.csproj", "{B8481849-3BB5-48D3-AF1A-0124E7E872AB}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B8481849-3BB5-48D3-AF1A-0124E7E872AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {B8481849-3BB5-48D3-AF1A-0124E7E872AB}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {B8481849-3BB5-48D3-AF1A-0124E7E872AB}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {B8481849-3BB5-48D3-AF1A-0124E7E872AB}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {A0BF7CDB-84F6-4247-BCCD-06F9746131F2} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Views/Mae003ResumeWorkflow/mae003.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 |

7 | 8 | API method used: 9 | @ViewBag.CodeExampleText.LinksToApiMethod[0].PathName 10 |

11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "ResumeWorkflow.cs" 17 | ) 18 | ) 19 |

20 | 21 | @if (ViewBag.IsWorkflowIdPresent) 22 | { 23 |
24 | 25 |
26 | } 27 | else 28 | { 29 |

30 | @Html.Raw( 31 | ViewBag.CodeExampleText.CustomErrorTexts[0].ErrorMessage 32 | ) 33 |

34 | 35 |
36 | 37 |
38 | } -------------------------------------------------------------------------------- /launcher-csharp/Connect/Examples/HMACValidation.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.Connect.Examples 6 | { 7 | using System; 8 | using System.Security.Cryptography; 9 | using System.Text; 10 | 11 | public static class HMACValidation 12 | { 13 | //ds-snippet-start:Connect1Step1 14 | public static string ComputeHash(string secret, string payload) 15 | { 16 | byte[] bytes = Encoding.UTF8.GetBytes(secret); 17 | var hmac = new HMACSHA256(bytes); 18 | bytes = Encoding.UTF8.GetBytes(payload); 19 | 20 | return Convert.ToBase64String(hmac.ComputeHash(bytes)); 21 | } 22 | 23 | public static bool HashIsValid(string secret, string payload, string verify) 24 | { 25 | ReadOnlySpan hashBytes = Convert.FromBase64String(ComputeHash(secret, payload)); 26 | ReadOnlySpan verifyBytes = Convert.FromBase64String(verify); 27 | 28 | return CryptographicOperations.FixedTimeEquals(hashBytes, verifyBytes); 29 | } 30 | 31 | //ds-snippet-end:Connect1Step1 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Views/Mae002PauseWorkflow/mae002.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 |

7 | 8 | API method used: 9 | @ViewBag.CodeExampleText.LinksToApiMethod[0].PathName 10 |

11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "PauseWorkflow.cs" 17 | ) 18 | ) 19 |

20 | 21 | @if (ViewBag.IsWorkflowIdPresent) 22 | { 23 |
24 | 25 |
26 | } 27 | else 28 | { 29 |

30 | @Html.Raw( 31 | ViewBag.CodeExampleText.CustomErrorTexts[0].ErrorMessage 32 | ) 33 |

34 | 35 |
36 | 37 |
38 | } 39 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Views/Mae004CancelWorkflowInstance/mae004.cshtml: -------------------------------------------------------------------------------- 1 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

2 | 3 |

4 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 5 |

6 |

7 | 8 | API method used: 9 | @ViewBag.CodeExampleText.LinksToApiMethod[0].PathName 10 |

11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "CancelWorkflowInstance.cs" 17 | ) 18 | ) 19 |

20 | 21 | @if (ViewBag.IsWorkflowIdPresent) 22 | { 23 |
24 | 25 |
26 | } 27 | else 28 | { 29 |

30 | @Html.Raw( 31 | ViewBag.CodeExampleText.CustomErrorTexts[0].ErrorMessage 32 | ) 33 |

34 | 35 |
36 | 37 |
38 | } -------------------------------------------------------------------------------- /launcher-csharp/WebForms/Views/CreateAndEmbedForm/web001.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | var additionalPages = ViewBag.CodeExampleText.AdditionalPages; 3 | var description = ""; 4 | foreach (var additionalPage in additionalPages) 5 | { 6 | if (additionalPage.Name == "create_web_form_template") 7 | { 8 | description = additionalPage.ResultsPageText; 9 | } 10 | } 11 | } 12 | 13 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

14 |

15 | @description 16 |

17 | 18 |

19 | API methods used: 20 | Templates::list, and 21 | Templates::create. 22 |

23 | 24 |

25 | @Html.Raw( 26 | @String.Format( 27 | ViewBag.SupportingTexts.ViewSourceFile, 28 | "CreateAndEmbedFormService.cs" 29 | ) 30 | ) 31 |

32 | 33 | 34 |
35 | 36 |
37 | 38 | -------------------------------------------------------------------------------- /Quick_ACG/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.Extensions.Configuration; 4 | using System.IO; 5 | using System.Runtime.InteropServices; 6 | 7 | namespace DocuSign.QuickACG 8 | { 9 | public class Program 10 | { 11 | public static void Main(string[] args) 12 | { 13 | CreateWebHostBuilder(args).Build().Run(); 14 | } 15 | 16 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) 17 | { 18 | var builder = WebHost.CreateDefaultBuilder(args).UseStartup(); 19 | builder.ConfigureAppConfiguration((hostingContext, config) => 20 | { 21 | string path = string.Empty; 22 | 23 | if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) 24 | { 25 | path = Path.GetFullPath(@"../launcher-csharp/appsettings.json"); 26 | } 27 | else 28 | { 29 | path = Path.GetFullPath(@"..\\launcher-csharp\\appsettings.json"); 30 | } 31 | 32 | 33 | config.AddJsonFile(path, 34 | optional: false, 35 | reloadOnChange: true); 36 | }); 37 | return builder; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Quick_ACG/eSignature/Controllers/DSController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authentication; 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.Extensions.Configuration; 4 | 5 | namespace DocuSign.CodeExamples.Controllers 6 | { 7 | [Route("ds/[action]")] 8 | public class AccountController : Controller 9 | { 10 | private IRequestItemsService _requestItemsService; 11 | 12 | private IConfiguration Configuration { get; } 13 | 14 | public AccountController(IRequestItemsService requestItemsService, IConfiguration configuration) 15 | { 16 | this._requestItemsService = requestItemsService; 17 | this.Configuration = configuration; 18 | } 19 | 20 | [HttpGet] 21 | public IActionResult Login(string returnUrl = "/") 22 | { 23 | return Challenge(new AuthenticationProperties() { RedirectUri = returnUrl }); 24 | } 25 | 26 | public IActionResult MustAuthenticate() 27 | { 28 | return Login(); 29 | } 30 | 31 | public async System.Threading.Tasks.Task Logout() 32 | { 33 | await AuthenticationHttpContextExtensions.SignOutAsync(HttpContext); 34 | _requestItemsService.Logout(); 35 | return LocalRedirect("/?egName=home"); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /launcher-csharp/Common/MustAuthenticateAttribute.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Common 6 | { 7 | using System; 8 | using DocuSign.CodeExamples.Controllers; 9 | using Microsoft.AspNetCore.Mvc; 10 | using Microsoft.AspNetCore.Mvc.Filters; 11 | using Microsoft.Extensions.DependencyInjection; 12 | 13 | public class MustAuthenticateAttribute : ActionFilterAttribute 14 | { 15 | public override void OnActionExecuting(ActionExecutingContext context) 16 | { 17 | var requestItemsService = context.HttpContext.RequestServices.GetService(); 18 | var egController = context.Controller as EgController; 19 | 20 | if (egController == null) 21 | { 22 | throw new InvalidOperationException("Controller is not of type EgController, attribute is not applicable."); 23 | } 24 | 25 | bool tokenOk = requestItemsService.CheckToken(3); 26 | if (!tokenOk) 27 | { 28 | requestItemsService.EgName = egController.EgName; 29 | context.Result = new RedirectResult("/ds/mustAuthenticate"); 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/CreateClickwrap/Ceg001.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.CreateClickwrap 2 | @{ 3 | int formNumber = 0; 4 | int clickwrapInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "CreateClickwrap.cs" 18 | ) 19 | ) 20 |

21 | 22 |
23 |
24 | 27 | 28 | 30 |
31 | 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/CreateClickwrap/ClickEg01.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.CreateClickwrap 2 | @{ 3 | int formNumber = 0; 4 | int clickwrapInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "CreateClickwrap.cs" 18 | ) 19 | ) 20 |

21 | 22 |
23 |
24 | 27 | 28 | 30 |
31 | 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/GetRoomsWithFilters/Shared/GetFilteredRoomsView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomFilterModel 2 | @{ 3 | int formNumber = 0; 4 | int startDateInputNumber = 0; 5 | int endDateInputNumber = 1; 6 | } 7 | 8 |
9 |
10 | 13 | 14 | 16 |
17 | 18 |
19 | 22 | 23 | 25 |
26 | 27 | 28 | 29 |
-------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/RetrieveDocuSignProfileByEmailAddress/Aeg006.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int emailInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "RetrieveDocuSignProfileByEmailAddress.cs" 18 | ) 19 | ) 20 |

21 | 22 |
23 |
24 | 27 | 28 | 30 |
31 | 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/RetrieveDocuSignProfileByEmailAddress/Aeg06.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int emailInputNumber = 0; 4 | } 5 | 6 |

6. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "RetrieveDocuSignProfileByEmailAddress.cs" 18 | ) 19 | ) 20 |

21 | 22 |
23 |
24 | 27 | 28 | 30 |
31 | 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /launcher-csharp/doc_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

World Wide Corp

9 |

Order Processing Division

12 |

Ordered by {USER_FULLNAME}

13 |

Email: {USER_EMAIL}

14 |

Copy to: {CC_NAME}, {CC_EMAIL}

15 |

16 | Candy bonbon pastry jujubes lollipop wafer biscuit biscuit. Topping brownie sesame snaps sweet roll pie. Croissant danish biscuit soufflé caramels jujubes jelly. Dragée danish caramels lemon drops dragée. Gummi bears cupcake biscuit tiramisu sugar plum pastry. Dragée gummies applicake pudding liquorice. Donut jujubes oat cake jelly-o. Dessert bear claw chocolate cake gummies lollipop sugar plum ice cream gummies cheesecake. 17 |

18 | 19 |

Agreed: **signature_1**/

20 | 21 | 22 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/DeleteRestoreEnvelope/restoreEnvelope.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int folderNameInputNumber = 1; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | 12 |

13 | @Html.Raw(string.Format(ViewBag.SupportingTexts.HelpingTexts.EnvelopeWillBeRestored, ViewBag.EnvelopeId)) 14 |

15 | 16 |
17 |
18 | 21 | 22 | 29 |
30 | 31 | 34 |
35 | -------------------------------------------------------------------------------- /DSHelper.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Common 6 | { 7 | using System.IO; 8 | using System.Runtime.InteropServices; 9 | 10 | internal class DsHelper 11 | { 12 | internal static string PrepareFullPrivateKeyFilePath(string fileName) 13 | { 14 | const string defaultRsaPrivateKeyFileName = "private.key"; 15 | 16 | var fileNameOnly = Path.GetFileName(fileName); 17 | if (string.IsNullOrEmpty(fileNameOnly)) 18 | { 19 | fileNameOnly = defaultRsaPrivateKeyFileName; 20 | } 21 | 22 | var filePath = Path.GetDirectoryName(fileName); 23 | if (string.IsNullOrEmpty(filePath)) 24 | { 25 | filePath = Directory.GetCurrentDirectory(); 26 | } 27 | 28 | if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && Directory.GetCurrentDirectory().Contains("bin")) 29 | { 30 | fileNameOnly = defaultRsaPrivateKeyFileName; 31 | filePath = Path.GetFullPath(filePath); 32 | } 33 | 34 | return Path.Combine(filePath, fileNameOnly); 35 | } 36 | 37 | internal static byte[] ReadFileContent(string path) 38 | { 39 | return File.ReadAllBytes(path); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Examples/PauseWorkflow.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Examples 6 | { 7 | using System.Threading.Tasks; 8 | using Docusign.IAM.SDK; 9 | using Docusign.IAM.SDK.Models.Components; 10 | 11 | public static class PauseWorkflow 12 | { 13 | //ds-snippet-start:Maestro2Step3 14 | public static async Task PauseMaestroWorkflow( 15 | string basePath, 16 | string accessToken, 17 | string accountId, 18 | string workflowId) 19 | { 20 | var client = CreateAuthenticatedClient(basePath, accessToken); 21 | return await client.Maestro.Workflows.PauseNewWorkflowInstancesAsync(accountId, workflowId); 22 | } 23 | 24 | //ds-snippet-end:Maestro2Step3 25 | 26 | /// 27 | /// Creates an authenticated IAM client. 28 | /// 29 | //ds-snippet-start:Maestro2Step2 30 | private static IamClient CreateAuthenticatedClient(string basePath, string accessToken) 31 | { 32 | return IamClient.Builder() 33 | .WithServerUrl(basePath) 34 | .WithAccessToken(accessToken) 35 | .Build(); 36 | } 37 | 38 | //ds-snippet-end:Maestro2Step2 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Examples/ResumeWorkflow.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Examples 6 | { 7 | using System.Threading.Tasks; 8 | using Docusign.IAM.SDK; 9 | using Docusign.IAM.SDK.Models.Components; 10 | 11 | public static class ResumeWorkflow 12 | { 13 | //ds-snippet-start:Maestro3Step3 14 | public static async Task ResumeMaestroWorkflow( 15 | string basePath, 16 | string accessToken, 17 | string accountId, 18 | string workflowId) 19 | { 20 | var client = CreateAuthenticatedClient(basePath, accessToken); 21 | return await client.Maestro.Workflows.ResumePausedWorkflowAsync(accountId, workflowId); 22 | } 23 | 24 | //ds-snippet-end:Maestro3Step3 25 | 26 | /// 27 | /// Creates an authenticated IAM client. 28 | /// 29 | //ds-snippet-start:Maestro3Step2 30 | private static IamClient CreateAuthenticatedClient(string basePath, string accessToken) 31 | { 32 | return IamClient.Builder() 33 | .WithServerUrl(basePath) 34 | .WithAccessToken(accessToken) 35 | .Build(); 36 | } 37 | 38 | //ds-snippet-end:Maestro3Step2 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /JWT-Console/JWT-Console.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net8.0 6 | JWT_Console 7 | JWT 8 | 9 | 10 | 11 | bin\Debug\net6.0 12 | false 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/RetrieveDocuSignProfileByUserId/Aeg007.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int userIdInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "RetrieveDocuSignProfileByUserId.cs" 17 | ) 18 | ) 19 |

20 | 21 |
22 |
23 | 26 | 27 | 34 |
35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/RetrieveDocuSignProfileByUserId/Aeg07.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int userIdInputNumber = 0; 4 | } 5 | 6 |

7. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | 12 |

13 | @Html.Raw( 14 | @String.Format( 15 | ViewBag.SupportingTexts.ViewSourceFile, 16 | "RetrieveDocuSignProfileByUserId.cs" 17 | ) 18 | ) 19 |

20 | 21 |
22 |
23 | 26 | 27 | 34 |
35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /launcher-csharp/Workspaces/Examples/CreateWorkspace.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Examples 6 | { 7 | using System.Threading.Tasks; 8 | using Docusign.IAM.SDK; 9 | using Docusign.IAM.SDK.Models.Components; 10 | 11 | public static class CreateWorkspace 12 | { 13 | public static async Task CreateWorkspaceAsync( 14 | string accessToken, 15 | string accountId, 16 | string workspaceName) 17 | { 18 | //ds-snippet-start:Workspaces1Step2 19 | var client = CreateAuthenticatedClient(accessToken); 20 | //ds-snippet-end:Workspaces1Step2 21 | 22 | //ds-snippet-start:Workspaces1Step3 23 | var createWorkspaceBody = new CreateWorkspaceBody 24 | { 25 | Name = workspaceName, 26 | }; 27 | //ds-snippet-end:Workspaces1Step3 28 | //ds-snippet-start:Workspaces1Step4 29 | return await client.Workspaces.Workspaces.CreateWorkspaceAsync(accountId, createWorkspaceBody); 30 | //ds-snippet-end:Workspaces1Step4 31 | } 32 | 33 | private static IamClient CreateAuthenticatedClient(string accessToken) 34 | { 35 | return IamClient.Builder() 36 | .WithAccessToken(accessToken) 37 | .Build(); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/DeleteUserDataFromOrganization/Aeg010.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | int formNumber = 0; 4 | int emailInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "DeleteUserDataFromOrganization.cs" 20 | ) 21 | ) 22 |

23 | 24 |
25 |
26 | 29 | 30 | 32 | 33 | 34 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailAddressOfUserToDelete) 35 | 36 |
37 | 38 | 39 |
40 | 41 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/Eg039InPersonSigning/Eg039.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int nameInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | @if (ViewBag.showDoc == true) 12 | { 13 |

Documentation about this example

14 | } 15 | 16 | 17 |

18 | @Html.Raw( 19 | @String.Format( 20 | ViewBag.SupportingTexts.ViewSourceFile, 21 | "Eg039InPersonSigningController.cs" 22 | ) 23 | ) 24 |

25 | 26 |
27 |
28 | 31 | 32 | 38 |
39 | 40 | 41 | 42 |
43 | -------------------------------------------------------------------------------- /launcher-csharp/Workspaces/Views/Work001CreateWorkspace/work001.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int workspaceNameInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | @if (ViewBag.showDoc == true) 12 | { 13 |

Documentation about this example

14 | } 15 | 16 | 17 | 18 |

19 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "CreateWorkspace.cs")) 20 |

21 | 22 |
23 |
24 | 27 | 34 |
35 | 36 | 37 | 38 |
39 | -------------------------------------------------------------------------------- /launcher-csharp/Navigator/Views/Nav002GetSingleAgreement/nav002.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int agreementsInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 | @if (ViewBag.showDoc == true) 12 | { 13 |

Documentation about this example

14 | } 15 | 16 | 17 | 18 |

19 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "NavigatorMethods.cs")) 20 |

21 | 22 |
23 |
24 | 27 | 28 | 37 |
38 | 39 | 40 | 41 |
42 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/DeletePermission/Eg027.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int permissionInputNumber = 0; 4 | } 5 | 6 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

7 |

8 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 9 |

10 | 11 |

12 | @Html.Raw(ViewBag.CodeExampleText.Notes) 13 |

14 | 15 | @if (ViewBag.showDoc == true) 16 | { 17 |

Documentation about this example

18 | } 19 | 20 | 21 | 22 | 23 |

24 | @Html.Raw( 25 | @String.Format( 26 | ViewBag.SupportingTexts.ViewSourceFile, 27 | "DeletePermission.cs" 28 | ) 29 | ) 30 |

31 | 32 |
33 | 34 |
35 | 38 | 39 | @Html.DropDownList( 40 | "permissionProfileId", 41 | ViewBag.PermissionProfiles, 42 | @ViewBag.CodeExampleText.Forms[formNumber].Inputs[permissionInputNumber].InputPlaceholder, 43 | new {@class = "custom-select", required = "required" }) 44 |
45 | 46 | 47 |
48 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/DeleteUserDataFromAccount/Aeg011.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | int formNumber = 0; 4 | int userIdInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "DeleteUserDataFromAccount.cs" 20 | ) 21 | ) 22 |

23 | 24 |
25 |
26 | 29 | 30 | 33 | 34 | 35 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.UserIDOfUserToDelete) 36 | 37 |
38 | 39 | 40 |
-------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/ExportDataFromRoom/Shared/ExportDataView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomsListModel 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToFirstCodeExample = "href='reg001'"; 5 | int formNumber = 0; 6 | int roomNameInputNumber = 0; 7 | } 8 | 9 | @if (Model.Rooms.Any()) 10 | { 11 |
12 |
13 | 16 | 18 |
19 | 20 | 21 |
22 | } 23 | else 24 | { 25 |

26 | @Html.Raw( 27 | String.Format( 28 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 29 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToFirstCodeExample, @"\d+").Value)) 30 | .FirstOrDefault() 31 | .RedirectText, 32 | "href='eg01'" 33 | ) 34 | ) 35 |

36 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) 37 | } -------------------------------------------------------------------------------- /launcher-csharp/appsettings.example.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | }, 9 | "DocuSign": { 10 | "ClientId": "{INTEGRATION_KEY_AUTH_CODE}", 11 | "ClientSecret": "{SECRET_KEY}", 12 | "AuthorizationEndpoint": "https://account-d.docusign.com/oauth/auth", 13 | "TokenEndpoint": "https://account-d.docusign.com/oauth/token", 14 | "UserInformationEndpoint": "https://account-d.docusign.com/oauth/userinfo", 15 | "AppUrl": "https://localhost:44333", 16 | "RoomsApiEndpoint": "https://demo.rooms.docusign.com", 17 | "AdminApiEndpoint": "https://api-d.docusign.net/management", 18 | "MaestroApiEndpoint": "https://apps-d.docusign.com/api/maestro", 19 | "WebFormsBasePath": "https://apps-d.docusign.com/api/webforms", 20 | "IamBasePath": "https://api-d.docusign.com/v1", 21 | "CodeExamplesManifest": "https://raw.githubusercontent.com/docusign/code-examples-csharp/master/manifest/CodeExamplesManifest.json", 22 | "SignerEmail": "{SIGNER_EMAIL}", 23 | "SignerName": "{SIGNER_NAME}", 24 | "GatewayAccountId": "{GATEWAY_ACCOUNT_ID}", 25 | "GatewayName": "TestApplication", 26 | "GatewayDisplayName": "TestApplication", 27 | "TargetAccountId": "{TARGET_ACCOUNT_ID}" 28 | }, 29 | "DocuSignJWT": { 30 | "ClientId": "{INTEGRATION_KEY_JWT}", 31 | "ImpersonatedUserId": "{IMPERSONATED_USER_ID}", 32 | "AuthServer": "account-d.docusign.com", 33 | "PrivateKeyFile": "private.key" 34 | }, 35 | "AllowedHosts": "*", 36 | "quickstart": "{QUICKSTART_VALUE}" 37 | } -------------------------------------------------------------------------------- /launcher-csharp.Tests/eSignatureUnitTests/CreateBrandUnitTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using DocuSign.CodeExamples.Common; 3 | using DocuSign.eSign.Model; 4 | using ESignature.Examples; 5 | using Xunit; 6 | 7 | namespace launcher_csharp.Tests.eSignatureUnitTests 8 | { 9 | [Collection("eSignature tests")] 10 | public sealed class CreateBrandUnitTests 11 | { 12 | private const string EsignarurePathPrefix = "/restapi"; 13 | 14 | private readonly TestConfig _testConfig; 15 | 16 | public CreateBrandUnitTests() 17 | { 18 | this._testConfig = new TestConfig(); 19 | 20 | var jwtLoginMethod = new JwtLoginMethodUnitTest(); 21 | jwtLoginMethod.RequestJWTUserToken_CorrectInputParameters_ReturnsOAuthToken(ExamplesApiType.ESignature, _testConfig); 22 | } 23 | 24 | [Fact] 25 | public void CreateBrand_CorrectInputParameters_ReturnsBrandsResponse() 26 | { 27 | // Assert 28 | string brandName = Guid.NewGuid().ToString("n").Substring(0, 8); 29 | var defaultBrandLanguage = "en"; 30 | string basePath = _testConfig.BasePath + EsignarurePathPrefix; 31 | 32 | //Act 33 | BrandsResponse permissionProfile = CreateBrand.Create( 34 | brandName, 35 | defaultBrandLanguage, 36 | _testConfig.AccessToken, 37 | basePath, 38 | _testConfig.AccountId); 39 | 40 | // Assert 41 | Assert.NotNull(permissionProfile); 42 | Assert.NotEmpty(permissionProfile.Brands); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /launcher-csharp/Connect/Controllers/ValidateWebhookMessage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Connect.Controllers 6 | { 7 | using DocuSign.CodeExamples.Common; 8 | using DocuSign.CodeExamples.Controllers; 9 | using DocuSign.CodeExamples.Models; 10 | using DocuSign.Connect.Examples; 11 | using Microsoft.AspNetCore.Mvc; 12 | 13 | [Area("Connect")] 14 | [Route("con001")] 15 | public class ValidateWebhookMessage : EgController 16 | { 17 | public ValidateWebhookMessage(DsConfiguration config, LauncherTexts launcherTexts, IRequestItemsService requestItemsService) 18 | : base(config, launcherTexts, requestItemsService) 19 | { 20 | this.CodeExampleText = this.GetExampleText(this.EgName, ExamplesApiType.Connect); 21 | this.ViewBag.title = this.CodeExampleText.ExampleName; 22 | } 23 | 24 | public override string EgName => "con001"; 25 | 26 | [SetViewBag] 27 | [HttpPost] 28 | [ValidateAntiForgeryToken] 29 | public ActionResult ValidateMessageUsing(string hmacSecret, string jsonPayload) 30 | { 31 | jsonPayload = jsonPayload.Replace("\\", string.Empty); 32 | 33 | string hashedOutput = HMACValidation.ComputeHash(hmacSecret, jsonPayload); 34 | 35 | this.ViewBag.h1 = this.CodeExampleText.ExampleName; 36 | this.ViewBag.message = this.CodeExampleText.ResultsPageText.Replace("{0}", hashedOutput); 37 | 38 | return this.View("example_done"); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /launcher-csharp/ConnectWebhookHMACValidation.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace ESignature.Examples 6 | { 7 | using System; 8 | using System.Security.Cryptography; 9 | using System.Text; 10 | 11 | public static class ConnectWebhookHmacValidation 12 | { 13 | /// 14 | /// Validates the payload that was recevied in the body (raw content) of the Connect webhook message 15 | /// 16 | /// HMAC key from the Conenct page in DocuSign 17 | /// Raw Content of the webhook message without wrapping or formatting 18 | /// Value of the x-docusign-signature-1 header of the webhook request 19 | /// True if the payload was verified with the secret 20 | public static bool HashIsValid(string secret, string payload, string verify) 21 | { 22 | ReadOnlySpan hashBytes = Convert.FromBase64String(ComputeHash(secret, payload)); 23 | ReadOnlySpan verifyBytes = Convert.FromBase64String(verify); 24 | 25 | return CryptographicOperations.FixedTimeEquals(hashBytes, verifyBytes); 26 | } 27 | 28 | private static string ComputeHash(string secret, string payload) 29 | { 30 | byte[] bytes = Encoding.UTF8.GetBytes(secret); 31 | HMAC hmac = new HMACSHA256(bytes); 32 | bytes = Encoding.UTF8.GetBytes(payload); 33 | 34 | return Convert.ToBase64String(hmac.ComputeHash(bytes)); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /launcher-csharp/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/DeleteRestoreEnvelope/Eg045.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | int formNumber = 0; 4 | int envelopeIdInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | @if (ViewBag.showDoc == true) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw( 21 | @String.Format( 22 | ViewBag.SupportingTexts.ViewSourceFile, 23 | "DeleteRestoreEnvelope.cs" 24 | ) 25 | ) 26 |

27 | 28 |
29 |
30 | 33 | 34 | 41 | 42 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.DefaultEnvelopeId) 43 |
44 | 45 | 48 |
49 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateRoomFromTemplate/Shared/CreateRoomView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomModel 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToSecondCodeExample = "href='reg002'"; 5 | int formNumber = 0; 6 | int roomNameInputNumber = 0; 7 | int templateInputNumber = 1; 8 | } 9 | 10 | @if (Model.Templates != null && Model.Templates.Any()) 11 | { 12 |
13 |
14 | 17 | 18 | 20 |
21 | 22 |
23 | 26 | 27 | 30 |
31 | 32 | 33 | 34 |
35 | } 36 | else 37 | { 38 |

@Html.Raw(ViewBag.CodeExampleText.RedirectsToOtherCodeExamples[0].RedirectText)

39 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) 40 | } 41 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/ListEnvelopeRecipients/eg005.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='eg002'"; 4 | int formNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

9 | 10 | @if (ViewBag.showDoc) 11 | { 12 |

Documentation about this example

13 | } 14 | 15 | 16 |

17 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "ListEnvelopeRecipients.cs")) 18 |

19 | 20 | @if (ViewBag.envelopeOk) 21 | { 22 |

@Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName)

23 | 24 |
25 | 26 | 27 |
28 | 29 | } 30 | else 31 | { 32 |

33 | @Html.Raw( 34 | String.Format( 35 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 36 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 37 | .FirstOrDefault() 38 | .RedirectText, 39 | "href='eg002'" 40 | ) 41 | ) 42 |

43 | 44 |
45 | 46 |
47 | } 48 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/DSConfiguration.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Models 6 | { 7 | public class DsConfiguration 8 | { 9 | public string RedirectForEg043 = "Eg043/EnvelopesListStatus"; 10 | public string DocDocx = "World_Wide_Corp_Battle_Plan_Trafalgar.docx"; 11 | public string TabsDocx = "World_Wide_Corp_salary.docx"; 12 | public string DocPdf = "World_Wide_Corp_lorem.pdf"; 13 | public string DocumentTemplatePdf = "World_Wide_Corp_Web_Form.pdf"; 14 | public string WebFormConfig = "web-form-config.json"; 15 | public string MaestroWorkflowConfig = "maestro-workflow-definition.json"; 16 | public string OfferDocDocx = "Offer_Letter_Dynamic_Table.docx"; 17 | public string DocCsv = "UserData.csv"; 18 | public string DocHtml = "doc_1.html"; 19 | public string ExportUsersPath = @"..\..\..\ExportedUserData.csv"; 20 | public string GithubExampleUrl = "https://github.com/docusign/code-examples-csharp/blob/master/launcher-csharp"; 21 | public string Documentation = null; 22 | 23 | public string AppUrl { get; set; } 24 | 25 | public string SignerEmail { get; set; } 26 | 27 | public string SignerName { get; set; } 28 | 29 | public string GatewayAccountId { get; set; } 30 | 31 | public string GatewayName { get; set; } 32 | 33 | public string QuickAcg { get; set; } 34 | 35 | public bool IsLoggedInAfterEg043 { get; set; } 36 | 37 | public string GatewayDisplayName { get; set; } 38 | 39 | public string CodeExamplesManifest { get; set; } 40 | 41 | public string PrincipalUserId { get; set; } 42 | } 43 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/ListEnvelopeDocuments/eg006.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='eg002'"; 4 | int formNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 | 9 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

10 | 11 | @if (ViewBag.showDoc) 12 | { 13 |

Documentation about this example

14 | } 15 | 16 | 17 | 18 |

19 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "ListEnvelopeDocuments.cs")) 20 |

21 | 22 | @if (ViewBag.envelopeOk) 23 | { 24 |

@Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName)

25 | 26 |
27 | 28 | 29 |
30 | 31 | } 32 | else 33 | { 34 |

35 | @Html.Raw( 36 | String.Format( 37 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 38 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 39 | .FirstOrDefault() 40 | .RedirectText, 41 | "href='eg002'" 42 | ) 43 | ) 44 |

45 | 46 |
47 | 48 |
49 | } 50 | 51 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/GetCustomFields/eg018.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | } 4 | @using System.Text.RegularExpressions; 5 | @{ 6 | var redirectTo16CodeExample = "href='eg016'"; 7 | } 8 | 9 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

10 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

11 | 12 | @if (ViewBag.showDoc) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "GetCustomFields.cs")) 21 |

22 | 23 | @if (ViewBag.envelopeOk) 24 | { 25 | @Html.Raw(String.Format(ViewBag.CodeExampleText.Forms[formNumber].FormName, "eg016")) 26 | 27 |
28 | 29 | 30 |
31 | } 32 | else 33 | { 34 |

35 | @Html.Raw( 36 | String.Format( 37 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 38 | .Where(x => x.CodeExampleToRedirectTo ==int.Parse(Regex.Match(redirectTo16CodeExample, @"\d+").Value)) 39 | .FirstOrDefault() 40 | .RedirectText, 41 | redirectTo16CodeExample 42 | ) 43 | ) 44 |

45 | 46 |
47 | 48 |
49 | 50 | } 51 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/GetEnvelopeTabData/eg015.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToNinthCodeExample = "href='eg009'"; 4 | int formNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 | 9 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

10 | 11 | @if (ViewBag.showDoc) 12 | { 13 |

Documentation about this example

14 | } 15 | 16 | 17 | 18 |

19 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "GetEnvelopeTabData.cs")) 20 |

21 | 22 | @if (ViewBag.envelopeOk) 23 | { 24 |

@Html.Raw(String.Format(ViewBag.CodeExampleText.Forms[formNumber].FormName, "eg009"))

25 | 26 |
27 | 28 | 29 |
30 | } 31 | else 32 | { 33 |

34 | @Html.Raw( 35 | String.Format( 36 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 37 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToNinthCodeExample, @"\d+").Value)) 38 | .FirstOrDefault() 39 | .RedirectText, 40 | redirectToNinthCodeExample 41 | ) 42 | ) 43 |

44 | 45 |
46 | 47 |
48 | 49 | } 50 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/CodeExampleText.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using System.Collections.Generic; 8 | using Newtonsoft.Json; 9 | 10 | public class CodeExampleText 11 | { 12 | [JsonProperty("ExampleNumber")] 13 | public int ExampleNumber { get; set; } 14 | 15 | [JsonProperty("ExampleName")] 16 | public string ExampleName { get; set; } 17 | 18 | [JsonProperty("ExampleDescription")] 19 | public string ExampleDescription { get; set; } 20 | 21 | [JsonProperty("CFREnabled")] 22 | public string CfrEnabled { get; set; } 23 | 24 | [JsonProperty("Notes")] 25 | public string Notes { get; set; } 26 | 27 | [JsonProperty("ResultsPageText")] 28 | public string ResultsPageText { get; set; } 29 | 30 | [JsonProperty("SkipForLanguages")] 31 | public string SkipForLanguages { get; set; } 32 | 33 | [JsonProperty("LinksToAPIMethod")] 34 | public List LinksToApiMethod { get; } = new List(); 35 | 36 | [JsonProperty("CustomErrorTexts")] 37 | public List CustomErrorTexts { get; } = new List(); 38 | 39 | [JsonProperty("RedirectsToOtherCodeExamples")] 40 | public List RedirectsToOtherCodeExamples { get; } = new List(); 41 | 42 | [JsonProperty("Forms")] 43 | public List Forms { get; } = new List(); 44 | 45 | [JsonProperty("AdditionalPage")] 46 | public List AdditionalPages { get; } = new List(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateExternalFormFillSession/Shared/CreateExternalFormFillSessionView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomDocumentModel 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToForthCodeExample = "href='reg004'"; 5 | int formNumber = 0; 6 | int documentsInputNumber = 0; 7 | } 8 | 9 | @if (Model.Documents != null && Model.Documents.Any()) 10 | { 11 |

@Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName)

12 | 13 |
14 | 15 | 16 |
17 | 20 | 21 | 24 |
25 | 26 | 27 | 28 |
29 | } 30 | else 31 | { 32 |

33 | @Html.Raw( 34 | String.Format( 35 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 36 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToForthCodeExample, @"\d+").Value)) 37 | .FirstOrDefault() 38 | .RedirectText, 39 | redirectToForthCodeExample 40 | ) 41 | ) 42 |

43 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) 44 | } 45 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/GetEnvelopeInformation/eg004.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='eg002'"; 4 | int formNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | @if (ViewBag.showDoc) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "GetEnvelopeInformation.cs")) 21 |

22 | 23 | @if (ViewBag.envelopeOk) 24 | { 25 |

26 | @Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName) 27 |

28 | 29 |
30 | 31 | 32 |
33 | 34 | } 35 | else 36 | { 37 |

38 | @Html.Raw( 39 | String.Format( 40 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 41 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 42 | .FirstOrDefault() 43 | .RedirectText, 44 | redirectToSecondCodeExample 45 | ) 46 | ) 47 |

48 | 49 |
50 | 51 |
52 | } 53 | -------------------------------------------------------------------------------- /launcher-csharp.Tests/launcher-csharp.Tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | launcher_csharp.Tests 6 | 7 | false 8 | 9 | 10 | 11 | bin\Debug\net6.0 12 | false 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | all 34 | runtime; build; native; contentfiles; analyzers; buildtransitive 35 | 36 | 37 | all 38 | runtime; build; native; contentfiles; analyzers; buildtransitive 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /launcher-csharp/Connect/Views/ValidateWebhookMessage/Con001.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int hmacInputNumber = 0; 4 | int jsonInputNumber = 1; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 |

14 | @Html.Raw( 15 | @String.Format( 16 | ViewBag.SupportingTexts.ViewSourceFile, 17 | "HMACValidation.cs" 18 | ) 19 | ) 20 |

21 | 22 |

23 | Prerequisites: See How to validate an HMAC signature. 24 |

25 | 26 |
27 |
28 | 31 | 32 | 37 |
38 |
39 | 42 | 43 | 49 |
50 | 51 | 52 |
53 | 54 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/SetUserGroupPermission/Eg025.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int permissionInputNumber = 0; 4 | int groupInputNumber = 1; 5 | } 6 | 7 | 8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

9 |

10 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 11 |

12 | 13 | 14 | @if (ViewBag.showDoc) 15 | { 16 |

Documentation about this example

17 | } 18 | 19 | 20 | 21 |

22 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "SetUserGroupPermission.cs")) 23 |

24 | 25 |
26 | 27 |
28 | 29 | 32 | @Html.DropDownList( 33 | "permissionProfileId", 34 | ViewBag.PermissionProfiles, 35 | @ViewBag.CodeExampleText.Forms[formNumber].Inputs[permissionInputNumber].InputPlaceholder, 36 | new { @class = "custom-select", required = "required" }) 37 |
38 |
39 | 42 | @Html.DropDownList( 43 | "userGroupId", 44 | ViewBag.UserGroups, 45 | @ViewBag.CodeExampleText.Forms[formNumber].Inputs[groupInputNumber].InputPlaceholder, 46 | new { @class = "custom-select", required = "required" }) 47 |
48 | 49 | 50 |
-------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/CreateExternalFormFillSession/Shared/SelectRoomView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomDocumentModel 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToFirstCodeExample = "href='reg001'"; 5 | int formNumber = 1; 6 | int documentsInputNumber = 0; 7 | } 8 | 9 | @if (Model.Rooms != null && Model.Rooms.Any()) 10 | { 11 |

@Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName)

12 | 13 |
14 |
15 | 18 | 19 | 27 |
28 | 29 |
30 | } 31 | else 32 | { 33 |

34 | @Html.Raw( 35 | String.Format( 36 | ((IEnumerable)ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 37 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToFirstCodeExample, @"\d+").Value)) 38 | .FirstOrDefault() 39 | .RedirectText, 40 | redirectToFirstCodeExample 41 | ) 42 | ) 43 |

44 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) 45 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/ShowEmbeddedConsole/eg012.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='eg002'"; 4 | int formNumber = 0; 5 | int viewInputNumber = 0; 6 | } 7 | 8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

9 |

10 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 11 |

12 | 13 | @if (ViewBag.showDoc) { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "ShowEmbeddedConsole.cs")) 21 |

22 | 23 | @if (!ViewBag.envelopeOk) { 24 | @Html.Raw( 25 | String.Format( 26 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 27 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 28 | .FirstOrDefault() 29 | .RedirectText, 30 | redirectToSecondCodeExample 31 | ) 32 | ) 33 | } 34 | 35 |
36 |
37 | 38 | 42 |
43 | 44 | 45 |
46 | -------------------------------------------------------------------------------- /launcher-csharp/Workspaces/Examples/AddDocumentToWorkspaces.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Examples 6 | { 7 | using System.IO; 8 | using System.Threading.Tasks; 9 | using Docusign.IAM.SDK; 10 | using Docusign.IAM.SDK.Models.Components; 11 | 12 | public static class AddDocumentToWorkspaces 13 | { 14 | public static async Task AddDocumentToWorkspaceAsync( 15 | string accessToken, 16 | string accountId, 17 | string workspaceId, 18 | string documentName, 19 | string documentPath) 20 | { 21 | //ds-snippet-start:Workspaces2Step2 22 | var client = CreateAuthenticatedClient(accessToken); 23 | //ds-snippet-end:Workspaces2Step2 24 | 25 | byte[] fileBytes = File.ReadAllBytes(documentPath); 26 | 27 | //ds-snippet-start:Workspaces2Step3 28 | var addWorkspaceDocumentRequest = new AddWorkspaceDocumentRequest 29 | { 30 | File = new AddWorkspaceDocumentRequestFile 31 | { 32 | FileName = documentName, 33 | Content = fileBytes, 34 | }, 35 | }; 36 | //ds-snippet-end:Workspaces2Step3 37 | 38 | //ds-snippet-start:Workspaces2Step4 39 | return await client.Workspaces.WorkspaceDocuments.AddWorkspaceDocumentAsync( 40 | accountId, 41 | workspaceId, 42 | addWorkspaceDocumentRequest); 43 | //ds-snippet-end:Workspaces2Step4 44 | } 45 | 46 | private static IamClient CreateAuthenticatedClient(string accessToken) 47 | { 48 | return IamClient.Builder() 49 | .WithAccessToken(accessToken) 50 | .Build(); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/UnpauseSignatureWorkflow/Eg033.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Html 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectTo32CodeExample = "href='eg032'"; 5 | } 6 | @functions 7 | { 8 | IHtmlContent GetTextInputMarkup(string id, string title, string type) 9 | { 10 | return Html.Raw($@" 11 |
12 | 13 | 14 |
"); 15 | } 16 | } 17 | 18 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

19 |

20 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 21 |

22 | 23 | 24 | @if (ViewBag.showDoc) 25 | { 26 |

Documentation about this example

} 27 | 28 | 29 | 30 |

31 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "UnpauseSignatureWorkflow.cs")) 32 |

33 | 34 | @if (ViewBag.pausedEnvelopeOk) { 35 |
36 | 37 |
38 | }else { 39 |

40 | @Html.Raw( 41 | String.Format( 42 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 43 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectTo32CodeExample, @"\d+").Value)) 44 | .FirstOrDefault() 45 | .RedirectText, 46 | redirectTo32CodeExample 47 | ) 48 | ) 49 |

50 | 51 |
52 | 53 |
54 | } -------------------------------------------------------------------------------- /launcher-csharp/Common/IRequestItemsService.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using DocuSign.CodeExamples.Models; 10 | using Docusign.IAM.SDK.Models.Components; 11 | using Microsoft.Extensions.Configuration; 12 | 13 | public interface IRequestItemsService 14 | { 15 | public string EgName { get; set; } 16 | 17 | public Session Session { get; set; } 18 | 19 | public User User { get; set; } 20 | 21 | public IConfiguration Configuration { get; set; } 22 | 23 | public Guid? OrganizationId { get; set; } 24 | 25 | public string AuthenticatedUserEmail { get; set; } 26 | 27 | string EnvelopeId { get; set; } 28 | 29 | public List ExtensionApps { get; set; } 30 | 31 | public string DocumentId { get; set; } 32 | 33 | public string ClickwrapId { get; set; } 34 | 35 | public string ClickwrapName { get; set; } 36 | 37 | public EnvelopeDocuments EnvelopeDocuments { get; set; } 38 | 39 | public string TemplateId { get; set; } 40 | 41 | public string WebFormsTemplateId { get; set; } 42 | 43 | public string WorkflowId { get; set; } 44 | 45 | public string WorkspaceId { get; set; } 46 | 47 | public string CreatorId { get; set; } 48 | 49 | public string WorkspaceDocumentId { get; set; } 50 | 51 | public bool IsWorkflowPublished { get; set; } 52 | 53 | public string InstanceId { get; set; } 54 | 55 | public string PausedEnvelopeId { get; set; } 56 | 57 | public string Status { get; set; } 58 | 59 | public string EmailAddress { get; set; } 60 | 61 | public void UpdateUserFromJwt(); 62 | 63 | public string IdentifyApiOfCodeExample(string eg); 64 | 65 | public void Logout(); 66 | 67 | public bool CheckToken(int bufferMin); 68 | } 69 | } -------------------------------------------------------------------------------- /launcher-csharp/Maestro/Examples/CancelWorkflowInstance.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Examples 6 | { 7 | using System.Threading.Tasks; 8 | using Docusign.IAM.SDK; 9 | using Docusign.IAM.SDK.Models.Components; 10 | 11 | public static class CancelWorkflowInstance 12 | { 13 | //ds-snippet-start:Maestro4Step3 14 | public static async Task CancelInstanceMaestroWorkflow( 15 | string basePath, 16 | string accessToken, 17 | string accountId, 18 | string workflowId, 19 | string workflowInstanceId) 20 | { 21 | var client = CreateAuthenticatedClient(basePath, accessToken); 22 | return await client.Maestro.WorkflowInstanceManagement.CancelWorkflowInstanceAsync(accountId, workflowId, workflowInstanceId); 23 | } 24 | 25 | //ds-snippet-end:Maestro4Step3 26 | 27 | public static async Task GetWorkflowInstanceStatus( 28 | string basePath, 29 | string accessToken, 30 | string accountId, 31 | string workflowId, 32 | string workflowInstanceId) 33 | { 34 | var client = CreateAuthenticatedClient(basePath, accessToken); 35 | return await client.Maestro.WorkflowInstanceManagement.GetWorkflowInstanceAsync(accountId, workflowId, workflowInstanceId); 36 | } 37 | 38 | /// 39 | /// Creates an authenticated IAM client. 40 | /// 41 | //ds-snippet-start:Maestro4Step2 42 | private static IamClient CreateAuthenticatedClient(string basePath, string accessToken) 43 | { 44 | return IamClient.Builder() 45 | .WithServerUrl(basePath) 46 | .WithAccessToken(accessToken) 47 | .Build(); 48 | } 49 | 50 | //ds-snippet-end:Maestro4Step2 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /launcher-csharp/Rooms/Views/AddingFormToRoom/Shared/AddFormView.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Rooms.Models.RoomFormModel 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToFirstCodeExample = "href='reg001'"; 5 | int formNumber = 0; 6 | int roomInputNumber = 0; 7 | int formInputNumber = 1; 8 | } 9 | 10 | @if (Model.Rooms.Any()) 11 | { 12 |
13 |
14 | 17 | 18 | 21 |
22 |
23 | 26 | 27 | 30 |
31 | 32 | 33 | 34 |
35 | } 36 | else 37 | { 38 |

39 | @Html.Raw( 40 | String.Format( 41 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 42 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToFirstCodeExample, @"\d+").Value)) 43 | .FirstOrDefault() 44 | .RedirectText, 45 | redirectToFirstCodeExample 46 | ) 47 | ) 48 |

49 | 50 | @Html.Raw(ViewBag.SupportingTexts.ContinueButton) 51 | } -------------------------------------------------------------------------------- /launcher-csharp/Click/Examples/RetrieveClickwraps.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.Click.Examples 6 | { 7 | using System; 8 | using DocuSign.Click.Api; 9 | using DocuSign.Click.Client; 10 | using DocuSign.Click.Model; 11 | 12 | public class RetrieveClickwraps 13 | { 14 | /// 15 | /// Gets a list of all clickwraps 16 | /// 17 | /// BasePath for API calls (URI) 18 | /// Access Token for API call (OAuth) 19 | /// The DocuSign Account ID (GUID or short version) for which the APIs call would be made 20 | /// The list of all clickwraps 21 | public static ClickwrapVersionsResponse GetClickwraps(string basePath, string accessToken, string accountId) 22 | { 23 | //ds-snippet-start:Click4Step2 24 | var docuSignClient = new DocuSignClient(basePath); 25 | docuSignClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 26 | //ds-snippet-end:Click4Step2 27 | //ds-snippet-start:Click4Step3 28 | var clickAccountApi = new AccountsApi(docuSignClient); 29 | 30 | var response = clickAccountApi.GetClickwrapsWithHttpInfo(accountId); 31 | 32 | response.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 33 | response.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 34 | 35 | if (reset != null && remaining != null) 36 | { 37 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 38 | Console.WriteLine("API calls remaining: " + remaining); 39 | Console.WriteLine("Next Reset: " + resetDate); 40 | } 41 | 42 | return response.Data; 43 | //ds-snippet-end:Click4Step3 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /launcher-csharp.Tests/eSignatureUnitTests/SetEnvelopeTabValueUnitTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using DocuSign.CodeExamples.Common; 5 | using ESignature.Examples; 6 | using Xunit; 7 | 8 | namespace launcher_csharp.Tests.eSignatureUnitTests 9 | { 10 | [Collection("eSignature tests")] 11 | public sealed class SetEnvelopeTabValueUnitTests 12 | { 13 | private const string RedirectUrl = "https://developers.docusign.com/docs/esign-rest-api/"; 14 | private const string RestApiPrefix = "/restapi"; 15 | private const string DocxDocumentName = "World_Wide_Corp_salary.docx"; 16 | 17 | private readonly TestConfig _testConfig; 18 | 19 | public SetEnvelopeTabValueUnitTests() 20 | { 21 | this._testConfig = new TestConfig(); 22 | 23 | var jwtLoginMethod = new JwtLoginMethodUnitTest(); 24 | jwtLoginMethod.RequestJWTUserToken_CorrectInputParameters_ReturnsOAuthToken(ExamplesApiType.ESignature, _testConfig); 25 | } 26 | 27 | [Fact] 28 | public void SetEnvelopeTabValue_CorrectInputParameters_ReturnsEnvelopeIdAndRedirectURL() 29 | { 30 | // Arrange 31 | string basePath = _testConfig.BasePath + RestApiPrefix; 32 | string tabsDocx = _testConfig.PathToSolution + DocxDocumentName; 33 | 34 | // Act 35 | var envelopeAndRedirectUrl = SetEnvelopeTabValue.CreateEnvelopeAndUpdateTabData( 36 | _testConfig.SignerEmail, 37 | _testConfig.SignerName, 38 | _testConfig.ImpersonatedUserId, 39 | _testConfig.AccessToken, 40 | basePath, 41 | _testConfig.AccountId, 42 | tabsDocx, 43 | RedirectUrl, 44 | RedirectUrl); 45 | 46 | string redirectUrl = envelopeAndRedirectUrl.Item2; 47 | string envelopeId = envelopeAndRedirectUrl.Item1; 48 | 49 | // Assert 50 | Assert.NotNull(redirectUrl); 51 | Assert.NotNull(envelopeId); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/CreateBrand/eg028.cshtml: -------------------------------------------------------------------------------- 1 | @using DocuSign.CodeExamples.Common 2 | @{ 3 | int formNumber = 0; 4 | int brandNameInputNumber = 0; 5 | int languageInputNumber = 1; 6 | } 7 | 8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

9 |

10 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 11 |

12 | 13 | @if (ViewBag.showDoc == true) 14 | { 15 |

Documentation about this example

16 | } 17 | 18 | 19 | 20 | 21 |

22 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "CreateBrand.cs")) 23 |

24 | 25 |
26 |

27 | @Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName) 28 |

29 | 30 |
31 | 34 | 35 | 42 |
43 | 44 |
45 | 48 | 49 | @Html.DropDownList( 50 | "defaultBrandLanguage", 51 | new SelectList(Languages.SupportedLanguages, "Key", "Value", "en"), 52 | new { @class = "form-control", @required = "required" } 53 | ) 54 |
55 | 56 | 57 |
58 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/DeleteUserProductPermissionProfile/Aeg009.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='aeg002'"; 4 | int formNumber = 0; 5 | int permissionInputNumber = 0; 6 | } 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 | 14 |

15 | @Html.Raw( 16 | @String.Format( 17 | ViewBag.SupportingTexts.ViewSourceFile, 18 | "DeleteUserProductPermissionProfile.cs" 19 | ) 20 | ) 21 |

22 | 23 | @if (ViewBag.EmailAddress != null) { 24 |

25 | @Html.Raw(String.Format(ViewBag.CodeExampleText.Forms[formNumber].FormName, @ViewBag.EmailAddress)) 26 |

27 | 28 |
29 |
30 | 33 | 34 | @Html.DropDownList( 35 | "ProductId", 36 | new SelectList(ViewBag.Products, "Key", "Value"), 37 | new { @class = "form-control" } 38 | ) 39 |
40 | 41 | 42 | 43 |
44 | } 45 | else 46 | { 47 |

48 | @Html.Raw( 49 | String.Format( 50 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 51 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 52 | .FirstOrDefault() 53 | .RedirectText, 54 | redirectToSecondCodeExample 55 | ) 56 | ) 57 |

58 | } 59 | 60 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Examples/DeletePermission.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace ESignature.Examples 6 | { 7 | using System; 8 | using DocuSign.eSign.Api; 9 | using DocuSign.eSign.Client; 10 | 11 | public static class DeletePermission 12 | { 13 | /// 14 | /// Deletes a permission profile 15 | /// 16 | /// Permission profile ID 17 | /// Access Token for API call (OAuth) 18 | /// BasePath for API calls (URI) 19 | /// The DocuSign Account ID (GUID or short version) for which the APIs call would be made 20 | public static void DeletePermissionProfile(string permissionProfileId, string accessToken, string basePath, string accountId) 21 | { 22 | // Construct your API headers 23 | //ds-snippet-start:eSign27Step2 24 | var docuSignClient = new DocuSignClient(basePath); 25 | docuSignClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 26 | AccountsApi accountsApi = new AccountsApi(docuSignClient); 27 | //ds-snippet-end:eSign27Step2 28 | 29 | // Call the eSignature REST API 30 | //ds-snippet-start:eSign27Step3 31 | var response = accountsApi.DeletePermissionProfileWithHttpInfo(accountId, permissionProfileId); 32 | response.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 33 | response.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 34 | 35 | if (reset != null && remaining != null) 36 | { 37 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 38 | Console.WriteLine("API calls remaining: " + remaining); 39 | Console.WriteLine("Next Reset: " + resetDate); 40 | } 41 | 42 | //ds-snippet-end:eSign27Step3 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/DeleteUserProductPermissionProfile/Aeg09.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Text.RegularExpressions; 2 | @{ 3 | var redirectToSecondCodeExample = "href='Aeg02'"; 4 | int formNumber = 0; 5 | int permissionInputNumber = 0; 6 | } 7 |

9. @Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | 13 | 14 |

15 | @Html.Raw( 16 | @String.Format( 17 | ViewBag.SupportingTexts.ViewSourceFile, 18 | "DeleteUserProductPermissionProfile.cs" 19 | ) 20 | ) 21 |

22 | 23 | @if (ViewBag.EmailAddress != null) { 24 |

25 | @Html.Raw(String.Format(ViewBag.CodeExampleText.Forms[formNumber].FormName, @ViewBag.EmailAddress)) 26 |

27 | 28 |
29 |
30 | 33 | 34 | @Html.DropDownList( 35 | "ProductId", 36 | new SelectList(ViewBag.Products, "Key", "Value"), 37 | new { @class = "form-control" } 38 | ) 39 |
40 | 41 | 42 | 43 |
44 | } 45 | else 46 | { 47 |

48 | @Html.Raw( 49 | String.Format( 50 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 51 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToSecondCodeExample, @"\d+").Value)) 52 | .FirstOrDefault() 53 | .RedirectText, 54 | redirectToSecondCodeExample 55 | ) 56 | ) 57 |

58 | } 59 | 60 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Examples/ListEnvelopeRecipients.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace ESignature.Examples 6 | { 7 | using System; 8 | using DocuSign.eSign.Api; 9 | using DocuSign.eSign.Client; 10 | using DocuSign.eSign.Model; 11 | 12 | public static class ListEnvelopeRecipients 13 | { 14 | /// 15 | /// Gets a list of all the recipients for a specific envelope 16 | /// 17 | /// Access Token for API call (OAuth) 18 | /// BasePath for API calls (URI) 19 | /// The DocuSign Account ID (GUID or short version) for which the APIs call would be made 20 | /// The required envelopeId 21 | /// An object containing information about all the recipients in the envelope 22 | public static Recipients GetRecipients(string accessToken, string basePath, string accountId, string envelopeId) 23 | { 24 | //ds-snippet-start:eSign5Step2 25 | var docuSignClient = new DocuSignClient(basePath); 26 | docuSignClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 27 | EnvelopesApi envelopesApi = new EnvelopesApi(docuSignClient); 28 | var results = envelopesApi.ListRecipientsWithHttpInfo(accountId, envelopeId); 29 | results.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 30 | results.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 31 | 32 | if (reset != null && remaining != null) 33 | { 34 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 35 | Console.WriteLine("API calls remaining: " + remaining); 36 | Console.WriteLine("Next Reset: " + resetDate); 37 | } 38 | 39 | //ds-snippet-end:eSign5Step2 40 | 41 | return results.Data; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Examples/GetEnvelopeInformation.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace ESignature.Examples 6 | { 7 | using System; 8 | using DocuSign.eSign.Api; 9 | using DocuSign.eSign.Client; 10 | using DocuSign.eSign.Model; 11 | 12 | public static class GetEnvelopeInformation 13 | { 14 | /// 15 | /// Gets the envelope's information for the specified envelope 16 | /// 17 | /// Access Token for API call (OAuth) 18 | /// BasePath for API calls (URI) 19 | /// The DocuSign Account ID (GUID or short version) for which the APIs call would be made 20 | /// The envelopeId for which you wish to get information 21 | /// Object containing envelope information 22 | public static Envelope GetEnvelope(string accessToken, string basePath, string accountId, string envelopeId) 23 | { 24 | //ds-snippet-start:eSign4Step2 25 | var docuSignClient = new DocuSignClient(basePath); 26 | docuSignClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 27 | 28 | EnvelopesApi envelopesApi = new EnvelopesApi(docuSignClient); 29 | var getEnvelopeReponse = envelopesApi.GetEnvelopeWithHttpInfo(accountId, envelopeId); 30 | getEnvelopeReponse.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 31 | getEnvelopeReponse.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 32 | 33 | if (reset != null && remaining != null) 34 | { 35 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 36 | Console.WriteLine("API calls remaining: " + remaining); 37 | Console.WriteLine("Next Reset: " + resetDate); 38 | } 39 | 40 | return getEnvelopeReponse.Data; 41 | //ds-snippet-end:eSign4Step2 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /launcher-csharp/Admin/Views/CreateAccount/Aeg013.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int emailInputNumber = 0; 4 | int firstNameInputNumber = 1; 5 | int lastNameInputNumber = 2; 6 | } 7 | 8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

9 |

10 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 11 |

12 | 13 | 14 | 15 | 16 |

17 | @Html.Raw( 18 | @String.Format( 19 | ViewBag.SupportingTexts.ViewSourceFile, 20 | "CreateAccount.cs" 21 | ) 22 | ) 23 |

24 | 25 |
26 |
27 | 30 | 31 | 33 |
34 | 35 |
36 | 39 | 40 | 43 |
44 | 45 |
46 | 49 | 50 | 53 |
54 | 55 | 56 |
-------------------------------------------------------------------------------- /launcher-csharp/Click/Examples/GetClickwrapResponses.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.Click.Examples 6 | { 7 | using System; 8 | using DocuSign.Click.Api; 9 | using DocuSign.Click.Client; 10 | using DocuSign.Click.Model; 11 | 12 | public class GetClickwrapResponses 13 | { 14 | /// 15 | /// Gets a clickwrap agreements 16 | /// 17 | /// The Id of clickwrap 18 | /// BasePath for API calls (URI) 19 | /// Access Token for API call (OAuth) 20 | /// The DocuSign Account ID (GUID or short version) for which the APIs call would be made 21 | /// The agreements of a given clickwrap 22 | public static ClickwrapAgreementsResponse GetAgreements(string clickwrapId, string basePath, string accessToken, string accountId) 23 | { 24 | //ds-snippet-start:Click5Step2 25 | var docuSignClient = new DocuSignClient(basePath); 26 | docuSignClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 27 | var clickAccountApi = new AccountsApi(docuSignClient); 28 | //ds-snippet-end:Click5Step2 29 | 30 | //ds-snippet-start:Click5Step3 31 | var response = clickAccountApi.GetClickwrapAgreementsWithHttpInfo(accountId, clickwrapId); 32 | 33 | response.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 34 | response.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 35 | 36 | if (reset != null && remaining != null) 37 | { 38 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 39 | Console.WriteLine("API calls remaining: " + remaining); 40 | Console.WriteLine("Next Reset: " + resetDate); 41 | } 42 | 43 | return response.Data; 44 | //ds-snippet-end:Click5Step3 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/RecipientAuthKBA/eg022.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int signerEmailInputNumber = 0; 4 | int signerNameInputNumber = 1; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | @if (ViewBag.showDoc == true) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "RecipientAuthKBA.cs")) 21 |

22 | 23 |
24 |
25 | 28 | 29 | 36 | 37 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailWontBeShared) 38 | 39 |
40 |
41 | 44 | 45 | 51 |
52 | 53 | 54 |
55 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/RecipientAuthIDV/eg023.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int signerEmailInputNumber = 0; 4 | int signerNameInputNumber = 1; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | @if (ViewBag.showDoc == true) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "RecipientAuthIDV.cs")) 21 |

22 | 23 |
24 |
25 | 28 | 29 | 36 | 37 | 38 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailWontBeShared) 39 | 40 |
41 |
42 | 45 | 46 | 52 |
53 | 54 | 55 | 56 |
57 | -------------------------------------------------------------------------------- /launcher-csharp/Common/Languages.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.Common 6 | { 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | public static class Languages 13 | { 14 | public static Dictionary SupportedLanguages = new Dictionary 15 | { 16 | { "ar", "Arabic" }, 17 | { "hy", "Armenian" }, 18 | { "id", "Bahasa Indonesia" }, 19 | { "ms", "Bahasa Malay" }, 20 | { "bg", "Bulgarian" }, 21 | { "zh_CN", "Chinese Simplified" }, 22 | { "zh_TW", "Chinese Traditional" }, 23 | { "hr", "Croatian" }, 24 | { "cs", "Czech" }, 25 | { "da", "Danish" }, 26 | { "nl", "Dutch" }, 27 | { "en_GB", "English UK" }, 28 | { "en", "English US" }, 29 | { "et", "Estonian" }, 30 | { "fa", "Farsi" }, 31 | { "fi", "Finnish" }, 32 | { "fr", "French" }, 33 | { "fr_CA", "French Canada" }, 34 | { "de", "German" }, 35 | { "el", "Greek" }, 36 | { "he", "Hebrew" }, 37 | { "hi", "Hindi" }, 38 | { "hu", "Hungarian" }, 39 | { "it", "Italian" }, 40 | { "ja", "Japanese" }, 41 | { "ko", "Korean" }, 42 | { "lv", "Latvian" }, 43 | { "lt", "Lithuanian" }, 44 | { "no", "Norwegian" }, 45 | { "pl", "Polish" }, 46 | { "pt", "Portuguese" }, 47 | { "pt_BR", "Portuguese Brasil" }, 48 | { "ro", "Romanian" }, 49 | { "ru", "Russian" }, 50 | { "sr", "Serbian" }, 51 | { "sk", "Slovak" }, 52 | { "sl", "Slovenian" }, 53 | { "es", "Spanish" }, 54 | { "es_MX", "Spanish Latin America" }, 55 | { "sv", "Swedish" }, 56 | { "th", "Thai" }, 57 | { "tr", "Turkish" }, 58 | { "uk", "Ukranian" }, 59 | { "vi", "Vietnamese" }, 60 | }; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/GetClickwrapResponses/Ceg005.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.GetClickwrapResponses 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToFirstCodeExample = "href='ceg001'"; 5 | int formNumber = 0; 6 | int clickwrapInputNumber = 0; 7 | } 8 | 9 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

10 |

11 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 12 |

13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "GetClickwrapResponses.cs" 20 | ) 21 | ) 22 |

23 | 24 | @if (ViewBag.ClickwrapsData.Clickwraps.Count > 0) { 25 |

26 | @Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName) 27 |

28 | 29 |
30 |
31 | 34 | 35 | 42 |
43 | 44 | 45 | 46 |
47 | } 48 | else 49 | { 50 |

51 | @Html.Raw( 52 | String.Format( 53 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 54 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToFirstCodeExample, @"\d+").Value)) 55 | .FirstOrDefault() 56 | .RedirectText, 57 | redirectToFirstCodeExample 58 | ) 59 | ) 60 |

61 | } -------------------------------------------------------------------------------- /launcher-csharp/Click/Views/GetClickwrapResponses/ClickEg05.cshtml: -------------------------------------------------------------------------------- 1 | @model DocuSign.CodeExamples.Click.Controllers.GetClickwrapResponses 2 | @using System.Text.RegularExpressions; 3 | @{ 4 | var redirectToFirstCodeExample = "href='eg01'"; 5 | int formNumber = 0; 6 | int clickwrapInputNumber = 0; 7 | } 8 | 9 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

10 |

11 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 12 |

13 | 14 | 15 |

16 | @Html.Raw( 17 | @String.Format( 18 | ViewBag.SupportingTexts.ViewSourceFile, 19 | "GetClickwrapResponses.cs" 20 | ) 21 | ) 22 |

23 | 24 | @if (ViewBag.ClickwrapsData.Clickwraps.Count > 0) { 25 |

26 | @Html.Raw(ViewBag.CodeExampleText.Forms[formNumber].FormName) 27 |

28 | 29 |
30 |
31 | 34 | 35 | 42 |
43 | 44 | 45 | 46 |
47 | } 48 | else 49 | { 50 |

51 | @Html.Raw( 52 | String.Format( 53 | ((IEnumerable) ViewBag.CodeExampleText.RedirectsToOtherCodeExamples) 54 | .Where(x => x.CodeExampleToRedirectTo == int.Parse(Regex.Match(redirectToFirstCodeExample, @"\d+").Value)) 55 | .FirstOrDefault() 56 | .RedirectText, 57 | redirectToFirstCodeExample 58 | ) 59 | ) 60 |

61 | } -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Models/ModelsToReadManifest/SupportingTexts.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.CodeExamples.ESignature.Models 6 | { 7 | using Newtonsoft.Json; 8 | 9 | public class SupportingTexts 10 | { 11 | [JsonProperty("HomePageText")] 12 | public string HomePageText { get; set; } 13 | 14 | [JsonProperty("ViewSourceFile")] 15 | public string ViewSourceFile { get; set; } 16 | 17 | [JsonProperty("APIMethodUsed")] 18 | public string ApiMethodUsed { get; set; } 19 | 20 | [JsonProperty("APIMethodUsedPlural")] 21 | public string ApiMethodUsedPlural { get; set; } 22 | 23 | [JsonProperty("SearchFailed")] 24 | public string SearchFailed { get; set; } 25 | 26 | [JsonProperty("SubmitButton")] 27 | public string SubmitButton { get; set; } 28 | 29 | [JsonProperty("ContinueButton")] 30 | public string ContinueButton { get; set; } 31 | 32 | [JsonProperty("HomeButton")] 33 | public string HomeButton { get; set; } 34 | 35 | [JsonProperty("LoginButton")] 36 | public string LoginButton { get; set; } 37 | 38 | [JsonProperty("LogoutButton")] 39 | public string LogoutButton { get; set; } 40 | 41 | [JsonProperty("ChangeAPITypeButton")] 42 | public string ChangeApiTypeButton { get; set; } 43 | 44 | [JsonProperty("WelcomeText")] 45 | public string WelcomeText { get; set; } 46 | 47 | [JsonProperty("CFRError")] 48 | public string CfrError { get; set; } 49 | 50 | [JsonProperty("ContactSupportToEnableFeature")] 51 | public string ContactSupportToEnableFeature { get; set; } 52 | 53 | [JsonProperty("IdenticalEmailsNotAllowedErrorMessage")] 54 | public string IdenticalEmailsNotAllowedErrorMessage { get; set; } 55 | 56 | [JsonProperty("LoginPage")] 57 | public LoginPage LoginPage { get; set; } 58 | 59 | [JsonProperty("SelectAPIPage")] 60 | public SelectApiPage SelectApiPage { get; set; } 61 | 62 | [JsonProperty("HelpingTexts")] 63 | public HelpingTexts HelpingTexts { get; set; } 64 | } 65 | } -------------------------------------------------------------------------------- /launcher-csharp/Admin/Examples/RetrieveDocuSignProfileByUserId.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Docusign. All rights reserved. 3 | // 4 | 5 | namespace DocuSign.Admin.Examples 6 | { 7 | using System; 8 | using DocuSign.Admin.Api; 9 | using DocuSign.Admin.Client; 10 | using DocuSign.Admin.Model; 11 | 12 | public class RetrieveDocuSignProfileByUserId 13 | { 14 | /// 15 | /// Get a DocuSign profile by the user ID 16 | /// 17 | /// BasePath for API calls (URI) 18 | /// Access Token for API call (OAuth) 19 | /// DocuSign Organization Id (GUID) 20 | /// The DocuSign User Id (GUID) 21 | /// DocuSign profile, that has the searched user ID 22 | public static UsersDrilldownResponse GetDocuSignProfileByUserId( 23 | string basePath, 24 | string accessToken, 25 | Guid? orgId, 26 | Guid userId) 27 | { 28 | //ds-snippet-start:Admin7Step2 29 | var apiClient = new DocuSignClient(basePath); 30 | apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken); 31 | //ds-snippet-end:Admin7Step2 32 | 33 | //ds-snippet-start:Admin7Step3 34 | var usersApi = new UsersApi(apiClient); 35 | var recentlyModifiedUsers = usersApi.GetUserDSProfileWithHttpInfo(orgId, userId); 36 | recentlyModifiedUsers.Headers.TryGetValue("X-RateLimit-Remaining", out string remaining); 37 | recentlyModifiedUsers.Headers.TryGetValue("X-RateLimit-Reset", out string reset); 38 | 39 | if (reset != null && remaining != null) 40 | { 41 | DateTime resetDate = DateTimeOffset.FromUnixTimeSeconds(long.Parse(reset)).UtcDateTime; 42 | Console.WriteLine("API calls remaining: " + remaining); 43 | Console.WriteLine("Next Reset: " + resetDate); 44 | } 45 | 46 | //ds-snippet-end:Admin7Step3 47 | 48 | return recentlyModifiedUsers.Data; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/FocusedView/eg044.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int signerEmailInputNumber = 0; 4 | int signerNameInputNumber = 1; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

9 | 10 | @if (ViewBag.showDoc == true) 11 | { 12 |

Documentation about this example

13 | } 14 | 15 | 16 | 17 |

18 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "FocusedView.cs")) 19 |

20 | 21 |
22 |
23 | 26 | 27 | 35 | 36 | 37 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailWontBeShared) 38 | 39 |
40 |
41 | 44 | 45 | 52 |
53 | 54 | 55 |
56 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/EmbeddedSigningCeremony/eg001.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int signerEmailInputNumber = 0; 4 | int signerNameInputNumber = 1; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

@Html.Raw(ViewBag.CodeExampleText.ExampleDescription)

9 | 10 | @if (ViewBag.showDoc == true) 11 | { 12 |

Documentation about this example

13 | } 14 | 15 | 16 | 17 |

18 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "EmbeddedSigningCeremony.cs")) 19 |

20 | 21 |
22 |
23 | 26 | 27 | 35 | 36 | 37 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailWontBeShared) 38 | 39 |
40 |
41 | 44 | 45 | 52 |
53 | 54 | 55 |
56 | -------------------------------------------------------------------------------- /launcher-csharp/eSignature/Views/SetEnvelopeTabValue/eg016.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | int formNumber = 0; 3 | int signerEmailInputNumber = 1; 4 | int signerNameInputNumber = 0; 5 | } 6 | 7 |

@Html.Raw(ViewBag.CodeExampleText.ExampleName)

8 |

9 | @Html.Raw(ViewBag.CodeExampleText.ExampleDescription) 10 |

11 | 12 | @if (ViewBag.showDoc == true) 13 | { 14 |

Documentation about this example

15 | } 16 | 17 | 18 | 19 |

20 | @Html.Raw(@String.Format(ViewBag.SupportingTexts.ViewSourceFile, "SetEnvelopeTabValue.cs")) 21 |

22 | 23 |
24 |
25 | 28 | 36 | @Html.Raw(ViewBag.SupportingTexts.HelpingTexts.EmailWontBeShared) 37 |
38 |
39 | 42 | 49 |
50 | 51 | 52 |
53 | --------------------------------------------------------------------------------