VacationItinerary.vb
''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.Globalization
Imports System.IO
Imports GrapeCity.Documents.Word

'' This data template sample generates a sample vacation itinerary.
Public Class VacationItinerary
    Function CreateDocx(Optional idx As Integer = 0) As GcWordDocument
        '' Sample data for the itinerary template:
        Dim data = {
            New With {
                .clientName = "Mark Louis",
                .clientPhoneNumber = "876-123-7546",
                .ItineraryStartDate = "01/12/2019",
                .ItineraryEndDate = "15/12/2019",
                .flightDetails = New With {
                    .arrivalDate = "01/12/2019",
                    .arrivalAirlineName = "British Airways",
                    .arrivalTime = "08:00 AM",
                    .arrivalTerminal = "T1",
                    .departureDate = "15/12/2019",
                    .departureAirlineName = "British Airways",
                    .departureArrivalTime = "10:00 PM",
                    .departureArrivalTerminal = "T2"
                },
                .hotelDetails = New With {
                    .checkinTime = "12:00 PM",
                    .hotelName = "Awasi Patagonia",
                    .hotelAddress = "12/13, Block Street",
                    .hotelInclusion = "Cab Service",
                    .checkOutTime = "11:00 AM"
                },
                .activities = {
                    New With {.activityDate = "03/12/2019", .activityDestination = "Jungle", .activity = "Jungle Safari", .remarks = "Make sure to carry woolens"},
                    New With {.activityDate = "07/12/2019", .activityDestination = "Spa Room", .activity = "Spa Session", .remarks = "Morning would be the best time"},
                    New With {.activityDate = "11/12/2019", .activityDestination = "Gym Area", .activity = "Yoga Session", .remarks = "Wear a comfortable attire"}
                }
            }
        }

        '' Load the template DOCX, add the data source and process the template:
        Dim doc = New GcWordDocument()
        doc.Load(Path.Combine("Resources", "WordDocs", "Vacation_Itinerary_Template.docx"))
        doc.DataTemplate.DataSources.Add("ds", data)
        doc.DataTemplate.Process(CultureInfo.GetCultureInfo("en-US"))

        '' Done:
        Return doc
    End Function

    Public Shared Function GetSampleParamsList() As List(Of String())
        Return New List(Of String())() From {
            New String() {"@data-templates/Vacation Itinerary", "Generate a vacation itinerary from template", Nothing},
            New String() {"@use-data-tpl/Vacation Itinerary", "Generate a vacation itinerary from template", Nothing}
        }
    End Function
End Class