aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Telemetry/TelemetryPublisherConfiguration.cs
blob: 56f826591ceb6f32d6531d49e8e098dbd074320c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Enumerations;

namespace Tango.Telemetry
{
    public class TelemetryPublisherConfiguration
    {
        public String MachineID { get; set; }
        public MachineTypes MachineType { get; set; }
        public String Environment { get; set; }
        public TimeSpan DiagnosticsSamplingInterval { get; set; }
        public TimeSpan PendingStorageCheckInterval { get; set; }
        public List<ITelemetryDestination> TelemetryDestinations { get; private set; }

        public TelemetryPublisherConfiguration()
        {
            TelemetryDestinations = new List<ITelemetryDestination>();

            DiagnosticsSamplingInterval = TimeSpan.FromSeconds(10);
            PendingStorageCheckInterval = TimeSpan.FromMinutes(1);
        }

        public void Validate()
        {
            if (!MachineID.IsNotNullOrEmpty()) throw new ArgumentNullException($"{nameof(MachineID)} is not set.");
            if (!Environment.IsNotNullOrEmpty()) throw new ArgumentNullException($"{nameof(Environment)} is not set.");
        }
    }
}