// How to Merge Specific Pages of Multiple PDF Files in C#
using System;
using GroupDocs.Merger.Cloud.Sdk.Api;
using GroupDocs.Merger.Cloud.Sdk.Client;
using GroupDocs.Merger.Cloud.Sdk.Model;
using GroupDocs.Merger.Cloud.Sdk.Model.Requests;

namespace GroupDocs.Merger.CSharp
{
  // Combine PDF files into one in C#
  class Merge_PDF_Files
  {
    static void Main(string[] args)
    { 

      try
      {
        
        // Create necessary API instances
        var documentApi = new DocumentApi(configuration);
        var item1 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-one.pdf"
          },
          Pages = new List<int?> { 1, 4, 7 }
        };

        var item2 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-two.pdf"
          },
          StartPageNumber = 1,
          EndPageNumber = 5,
          RangeMode = JoinItem.RangeModeEnum.OddPages
        };

        var options = new JoinOptions
        {
          JoinItems = new List<JoinItem> { item1, item2 },
          OutputPath = "csharp-testing/merged-file.pdf"
        };

        var request = new JoinRequest(options);
        var response = documentApi.Join(request);
        Console.WriteLine("Successfully combined two PDF files into one in CSharp: " + response.Path);
      }
      catch (Exception e)
      {
        Console.WriteLine("Exception when calling GroupDocs Api: " + e.Message);
      }

    }
  }
}