---
title: ITemplateService
summary: API reference for ITemplateService.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
---

# ITemplateService

`ITemplateService` declares a service contract in the Documents area, implemented outside this library (most likely in SAIF.Services, per the declare-here, enforce-elsewhere pattern documented for this library)*.

## Purpose
- Declares the operations that a SAIF.Services implementation must provide for the Documents area*.

## Context
- Namespace: `SAIF.Core.Contracts.Documents`
- Kind: Interface
- Assembly/package: `SAIF.Core` (NuGet package `SAIF.SAIFCode.Core`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `GetTemplateOrDefault` | `Template GetTemplateOrDefault(long templateId)` | Returns template or default, given `templateId`*. |
| `GetContextTypes` | `IEnumerable<ContextCode> GetContextTypes()` | Returns context types*. |
| `GetAllTemplateOutputProfiles` | `IEnumerable<DocumentTemplateOutputProfile> GetAllTemplateOutputProfiles()` | Returns all template output profiles*. |
| `GetDocumentOptionCodes` | `IEnumerable<DocumentOptionCode> GetDocumentOptionCodes()` | Returns document option codes*. |
| `GetOptionsForOneTemplate` | `IEnumerable<DocumentTemplateOption> GetOptionsForOneTemplate(long inId)` | Returns options for one template, given `inId`*. |
| `GetOnBaseTypes` | `IEnumerable<OnBaseType> GetOnBaseTypes(String inOnBaseTypeGroupCode)` | Returns on base types, given `inOnBaseTypeGroupCode`*. |
| `GetOnBaseSubTypes` | `IEnumerable<OnBaseSubType> GetOnBaseSubTypes(string inOnBaseTypeGroupCode, string inOnBaseTypeCode)` | Returns on base sub types, given `inOnBaseTypeGroupCode`, `inOnBaseTypeCode`*. |
| `DeleteRequestDistributions` | `void DeleteRequestDistributions(long requestId)` | Deletes request distributions, given `requestId`*. |
| `GetSearchResults` | `IEnumerable<TemplateSearchResult> GetSearchResults(string searchTerm)` | Returns search results, given `searchTerm`*. |
| `GetTemplatesByGroups` | `IEnumerable<TemplateSearchResult> GetTemplatesByGroups(string businessGroups, string subgroups)` | Returns templates by groups, given `businessGroups`, `subgroups`*. |
| `CreateTemplate` | `long CreateTemplate(Template createdTemplate)` | Creates template, given `createdTemplate`*. |
| `DisableTemplate` | `void DisableTemplate(long inId)` | Handles disable template, given `inId`*. |
| `DeleteTemplateOutputProfiles` | `void DeleteTemplateOutputProfiles(long templateId)` | Deletes template output profiles, given `templateId`*. |

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- Core/SAIF.Core/Contracts/Documents/ITemplateSearchService.cs
