Skip to main content

1E SDK

Code examples

Example 1: Access Tachyon using default credentials

Creating default connector

TachyonConnector connector = new TachyonConnector("http://myserver.mydomain.com/consumer", "myConsumer", null);
Example 2: Access Tachyon using specific credentials

Custom Http manager class

class MyManager : IHttpClientManager
{
        private readonly string userName;
    private readonly string password;
        
        public MyManager(string userName, string password)
        {
                this.userName = userName;
        this.password = password;
        }

        public System.Net.Http.HttpClient GetClient()
    {         
                HttpClientHandler httpMessageHandler = new HttpClientHandler
        {
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(this.userName, this.password)
        };
        return new HttpClient(httpMessageHandler);
        }

        public void DisposeOfClient(System.Net.Http.HttpClient client)
    {
                client.Dispose();
        }
}

Creating connector

IHttpClientManager clientManager = new MyManager("username goes here", "password goes here");
ITransportProxy proxy = new DefaultTransportProxy(null, "myConsumer", clientManager);
TachyonConnector connector = new TachyonConnector("http://myserver.mydomain.com/consumer", proxy, null);
Example 3: Access Tachyon using a custom transport proxy

Creating a connector with custom transport proxy

class myConnectionProxy : ITransportProxy
{
        [...]
}

[...]

var myConnectionProxyInstance = new myConnectionProxy([...]);
TachyonConnector connector = new TachyonConnector("http://myserver.mydomain.com/consumer", myConnectionProxyInstance, null);
Example 4: A complete example

A complete SDK example Expand source

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tachyon.SDK.Consumer;
using Tachyon.SDK.Consumer.Enums;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            var connector = new TachyonConnector("http://localhost/consumer", "MyCustomConsumer", null);
            var devices = connector.Devices.GetDevices();
            if (devices.Success)
            {
                foreach (var device in devices.ReceivedObject)
                {
                    Console.WriteLine("Name: {0} - Os: {1}", device.Fqdn, device.OsVerTxt);
                }
            }

            var instructionDefinitions = connector.InstructionDefinitions.Get(new List<InstructionType> {InstructionType.Question});
            if (instructionDefinitions.Success)
            {
                foreach (var instructionDefinition in instructionDefinitions.ReceivedObject)
                {
                    Console.WriteLine(instructionDefinition.Name);
                }
            }

            var definition = connector.InstructionDefinitions.GetInstructionDefinition("1E-Explorer-TachyonCore-DisabledServices");
            if (definition.Success)
            {
                var def = definition.ReceivedObject;
                Console.WriteLine("Name: {0}", def.Name);
                Console.WriteLine("Description: {0}", def.Description);
                Console.WriteLine("Instruction TTL: {0}", def.InstructionTtlMinutes);
                Console.WriteLine("Responses TTL: {0}", def.ResponseTtlMinutes);
                Console.WriteLine("Schema:");
                foreach (var schemaColumn in def.Schema)
                {
                    Console.WriteLine("   Field Name: {0}. Data Type: {1}", schemaColumn.Name, schemaColumn.Type);
                }
                Console.WriteLine("Aggregation:");
                foreach (var aggregationColumn in def.Aggregation.Schema)
                {
                    Console.WriteLine("   Field Name: {0}. Data Type: {1}", aggregationColumn.Name, aggregationColumn.Type);
                }
            }

            var myDefinition = connector.InstructionDefinitions.GetInstructionDefinition("1E-Explorer-TachyonCore-DisabledServices");
            if (myDefinition.Success)
            {
                var result = connector.Instructions.SendInstruction(myDefinition.ReceivedObject.Id, null, 60, 120);
                if (result.Success)
                {
                    Console.WriteLine("successfully issued an instruction");
                    Thread.Sleep(2000);
                    var answers = connector.Responses.GetAllAggregatedResponses(result.ReceivedObject.Id);
                    if (answers.Success)
                    {
                        foreach (var answer in answers.ReceivedObject.Responses)
                        {
                            Console.WriteLine("Caption: {0} - Count :{1}",answer.Values["Caption"], answer.Values["Count"]);
                        }
                    }
                }
            }
        }
    }
}