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); }
public AuthController(TS3AnalyticsDbContext ts3AnalyticsDbContext, IConfiguration configuration, ITS3DataProvider ts3DataProvider, IOptions <TeamspeakConfiguration> ts3Config, IOptions <ServiceConfiguration> serviceConfiguration) : base(configuration, ts3DataProvider, ts3Config) { _ts3AnalyticsDbContext = ts3AnalyticsDbContext; _serviceConfiguration = serviceConfiguration; }