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));
        }
        private static bool InitDB()
        {
            var dbContextOptionsBuilder = new DbContextOptionsBuilder <TS3AnalyticsDbContext>();

            dbContextOptionsBuilder.UseSqlServer(_configuration.GetConnectionString("ServiceDatabase"),
                                                 b => b.MigrationsAssembly("TeamspeakAnalytics.database.mssql"));

            using (var db = new TS3AnalyticsDbContext(dbContextOptionsBuilder.Options))
            {
                if (db.Database.GetPendingMigrations().Any())
                {
                    //TODO: log updating database
                    db.Database.Migrate();
                }
                else
                {
                    //TODO; log no update needed.
                }
            }

            return(true);
        }
Exemple #3
0
 public AuthController(TS3AnalyticsDbContext ts3AnalyticsDbContext, IConfiguration configuration, ITS3DataProvider ts3DataProvider,
                       IOptions <TeamspeakConfiguration> ts3Config, IOptions <ServiceConfiguration> serviceConfiguration) : base(configuration, ts3DataProvider, ts3Config)
 {
     _ts3AnalyticsDbContext = ts3AnalyticsDbContext;
     _serviceConfiguration  = serviceConfiguration;
 }