/// <summary>
        /// Gets the list of rooms and forms
        /// </summary>
        /// <param name="basePath">BasePath for API calls (URI)</param>
        /// <param name="accessToken">Access Token for API call (OAuth)</param>
        /// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param>
        /// <returns>The tuple with lists of rooms and forms</returns>
        public static (FormSummaryList forms, RoomSummaryList rooms) GetFormsAndRooms(
            string basePath,
            string accessToken,
            string accountId)
        {
            // Construct your API headers
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", $"Bearer {accessToken}");
            var roomsApi         = new RoomsApi(apiClient);
            var formLibrariesApi = new FormLibrariesApi(apiClient);

            // Get Forms Libraries
            FormLibrarySummaryList formLibraries = formLibrariesApi.GetFormLibraries(accountId);

            // Get Forms
            FormSummaryList forms = new FormSummaryList(new List <FormSummary>());

            if (formLibraries.FormsLibrarySummaries.Any())
            {
                forms = formLibrariesApi.GetFormLibraryForms(
                    accountId,
                    formLibraries.FormsLibrarySummaries.First().FormsLibraryId);
            }

            // Get Rooms
            RoomSummaryList rooms = roomsApi.GetRooms(accountId);

            // Call the Rooms API to create a room
            return(forms, rooms);
        }
        /// <summary>
        /// Gets the list of forms and form group
        /// </summary>
        /// <param name="basePath">BasePath for API calls (URI)</param>
        /// <param name="accessToken">Access Token for API call (OAuth)</param>
        /// <param name="accountId">The DocuSign Account ID (GUID or short version) for which the APIs call would be made</param>
        /// <returns>The tuple of forms and form group lists</returns>
        public static (FormSummaryList forms, FormGroupSummaryList formGroups) GetFormsAndFormGroups(
            string basePath,
            string accessToken,
            string accountId)
        {
            // Construct your API headers
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
            var formGroupsApi    = new FormGroupsApi(apiClient);
            var formLibrariesApi = new FormLibrariesApi(apiClient);

            FormLibrarySummaryList formLibraries = formLibrariesApi.GetFormLibraries(accountId);

            FormSummaryList forms = new FormSummaryList(new List <FormSummary>());

            if (formLibraries.FormsLibrarySummaries.Any())
            {
                forms = formLibrariesApi.GetFormLibraryForms(
                    accountId,
                    formLibraries.FormsLibrarySummaries.First().FormsLibraryId);
            }

            FormGroupSummaryList formGroups = formGroupsApi.GetFormGroups(accountId);

            return(forms, formGroups);
        }
        public override IActionResult Get()
        {
            base.Get();
            // Step 1. Obtain your OAuth token
            string accessToken = RequestItemsService.User.AccessToken;                      // Represents your {ACCESS_TOKEN}
            var    basePath    = $"{RequestItemsService.Session.RoomsApiBasePath}/restapi"; // Base API path

            // Step 2: Construct your API headers
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
            var roomsApi         = new RoomsApi(apiClient);
            var formLibrariesApi = new FormLibrariesApi(apiClient);

            string accountId = RequestItemsService.Session.AccountId; // Represents your {ACCOUNT_ID}

            try
            {
                //Step 3: Get Forms Libraries
                FormLibrarySummaryList formLibraries = formLibrariesApi.GetFormLibraries(accountId);

                //Step 4: Get Forms
                FormSummaryList forms = new FormSummaryList(new List <FormSummary>());
                if (formLibraries.FormsLibrarySummaries.Any())
                {
                    forms = formLibrariesApi.GetFormLibraryForms(
                        accountId,
                        formLibraries.FormsLibrarySummaries.First().FormsLibraryId);
                }

                //Step 5: Get Rooms
                RoomSummaryList rooms = roomsApi.GetRooms(accountId);

                RoomFormModel = new RoomFormModel {
                    Forms = forms.Forms, Rooms = rooms.Rooms
                };

                return(View("Eg04", this));
            }
            catch (ApiException apiException)
            {
                ViewBag.errorCode    = apiException.ErrorCode;
                ViewBag.errorMessage = apiException.Message;

                ApiError error = JsonConvert.DeserializeObject <ApiError>(apiException.ErrorContent);
                if (error.ErrorCode.Equals("FORMS_INTEGRATION_NOT_ENABLED", StringComparison.InvariantCultureIgnoreCase))
                {
                    return(View("ExampleNotAvailable"));
                }
                return(View("Error"));
            }
        }
        public override IActionResult Get()
        {
            base.Get();
            string accessToken = RequestItemsService.User.AccessToken;
            var    basePath    = $"{RequestItemsService.Session.RoomsApiBasePath}/restapi"; // Base API path

            // Step 2 start
            var apiClient = new ApiClient(basePath);

            apiClient.Configuration.DefaultHeader.Add("Authorization", "Bearer " + accessToken);
            // Step 2 end

            var formGroupsApi    = new FormGroupsApi(apiClient);
            var formLibrariesApi = new FormLibrariesApi(apiClient);

            string accountId = RequestItemsService.Session.AccountId;

            try
            {
                // Step 3 start
                FormLibrarySummaryList formLibraries = formLibrariesApi.GetFormLibraries(accountId);

                FormSummaryList forms = new FormSummaryList(new List <FormSummary>());
                if (formLibraries.FormsLibrarySummaries.Any())
                {
                    forms = formLibrariesApi.GetFormLibraryForms(
                        accountId,
                        formLibraries.FormsLibrarySummaries.First().FormsLibraryId);
                }
                // Step 3 end

                // Step 4 start
                FormGroupSummaryList formGroups = formGroupsApi.GetFormGroups(accountId);
                // Step 4 end

                FormFormGroupModel = new FormFormGroupModel {
                    Forms = forms.Forms, FormGroups = formGroups.FormGroups
                };

                return(View("Eg09", this));
            }
            catch (ApiException apiException)
            {
                ViewBag.errorCode    = apiException.ErrorCode;
                ViewBag.errorMessage = apiException.Message;

                return(View("Error"));
            }
        }