# Tyro Terminal Adapter (TTA)

This is the TTA library that supports newer .net and means to deprecate old TTA which is for .net framework up to 3.5.

## Existing Interfaces Covered

This library provides the same transacting functionalities via the same set of interfaces from old TTA as listed below:

- **ITerminalAdapter**
- **ITerminalAdapterHeadless**
- **ITerminalAdapterReports**
- **ITerminalAdapterSettlement**
- **ITerminalAdapterTipping**
- **ITerminalAdapterEasyclaim**
- **ITerminalAdapterTabCompletion**
- **ITerminalAdapterPreAuthCompletion**
- **ITerminalAdapterHealthpoint**


## New Interfaces Introduced

These are the new features added via the new feature interfaces:

- **IUtilityLauncher**
This is used to launch utility apps like Configurator.


## Components Removed

This new library streamlines TTA solution by making following components deprecated:

- The registry usage
The per user settings are moved to user config file in `%UserProfile%\AppData\Local\Tyro\config.json`. The global settings are moved to online `settings.json` file to be hosted by TYRO.
- Installer
This is no longer needed as no installation is required to use TTA functionality on client machine.
- Filewatcher
This is no longer supported.
- RMS COM
This is no longer supported.
- Updater & Telemetry
This is no longer required.
- Compact Framework
The support for compact framework is removed as it no longer exists.


## How To Use

Before initiating any transactions (purchase, refund etc.), please make sure Tyro terminal is paired with POS using the configurator. Examples of launching configurator and initiating a transaction can be found below.

### To use this library without dependency injection

- Configure the client with a valid API key granted by TYRO



```csharp
TtaClient.ConfigureClient("your api key");
```

- Use class `Tyro.Terminal.Adapter.ThinClient.TtaClient` to obtain the instance of the desired TTA feature interface and invoke TTA functionalities



```csharp
// launch configurator for pairing
var utilityLauncher = TtaClient.GetRequiredTtaFeature<IUtilityLauncher>();
await utilityLauncher.LaunchConfiguratorAsync();

// initiate a refund transaction
var terminalAdapter = TtaClient.GetRequiredTtaFeature<ITerminalAdapter>();
terminalAdapter.Refund(111);
```

### To use with MS dependency injection

- Register TTA features in `IServiceCollection` with a valid API key granted by TYRO



```csharp
services.AddTtaFeatures("your api key");
```

- Inject desired TTA feature interface to your business class and invoke TTA functionalities



```csharp
public class SomeBusinessClass
{
    private readonly IUtilityLauncher _utilityLauncher;
    private readonly ITerminalAdapter _terminalAdapter;

    public SomeBusinessClass(IUtilityLauncher utilityLauncher, ITerminalAdapter terminalAdapter)
    {
        _utilityLauncher = utilityLauncher;
        _terminalAdapter = terminalAdapter;
    }

    public async Task SomePairMethod()
    {
        await utilityLauncher.LaunchConfiguratorAsync();
    }

    public void SomeRefundMethod()
    {
        terminalAdapter.Refund(111);
    }
}
```

## Demo App

There is an example POS app available to showcase how to integrate the TTA library and use its features.

For further assistance, please reach out to the Integration Support team at  [email](mailto:integrationsupport@tyro.com)