private static Tuple <GetClientDetailedInfo, TS3Client> AnalyzeClientTuple(
            GetClientDetailedInfo tscl, TS3Client dbcl, TS3AnalyticsDbContext dbContext, DateTime timeStamp, DateTime endTime)
        {
            if (dbcl == null)
            {
                dbcl = new TS3Client
                {
                    Created              = timeStamp,
                    DatabaseId           = tscl.DatabaseId,
                    Id                   = Guid.NewGuid(),
                    UniqueIdentifier     = tscl.UniqueIdentifier,
                    TS3ClientConnections = new List <TS3ClientConnection>()
                };
                dbContext.TS3Clients.Add(dbcl);
            }

            dbcl.ChangeDate           = timeStamp;
            dbcl.LastConnected        = timeStamp;
            dbcl.NickName             = tscl.NickName;
            dbcl.TotalConnectionCount = tscl.TotalConnectionCount;
            dbcl.TS3Plattform         = tscl.Plattform;
            dbcl.TS3Version           = tscl.Version;

            dbContext.TS3ClientConnection.Add(new TS3ClientConnection
            {
                ChannelId      = tscl.ChannelId,
                ClientGuid     = dbcl.Id,
                Id             = Guid.NewGuid(),
                IncactiveSince = tscl.IdleTime,
                TimeStampStart = timeStamp,
                TimeStampEnd   = endTime
            });

            return(new Tuple <GetClientDetailedInfo, TS3Client>(tscl, dbcl));
        }
 internal TS3Notify(TS3Client client)
 {
     ts3Client = client;
 }
        internal TS3Connector(TS3Client ts3Client, string hostname = "localhost", int port = 25639)
        {
            this.ts3Client = ts3Client;

            Connect(hostname, port);
        }