Example #1
0
        public async Task GetResponse_Null()
        {
            using (var context = await EntityFrameworkHelpers.SqlContextAsync())
            {
                var songRepo    = new SongPlaybackRepository(new NullLogger <SongPlaybackRepository>(), context);
                var sessionRepo = new PlaybackSessionRepository(new NullLogger <PlaybackSessionRepository>(), context, songRepo);

                var result = await sessionRepo.GetById("foo");

                Assert.Null(result);
            }
        }
 public PlaybackSessionService(
     ILogger <PlaybackSessionService> logger,
     PlaybackSessionRepository sessionRepo,
     SongPlaybackRepository songRepo,
     IScheduler jobScheduler,
     SpotifyPlaybackService playbackService,
     UserService userService)
 {
     _logger          = logger;
     _sessionRepo     = sessionRepo;
     _songRepo        = songRepo;
     _jobScheduler    = jobScheduler;
     _playbackService = playbackService;
     _userService     = userService;
 }
 public SynthChannelController(
     ILogger <SynthChannelController> logger,
     UserManager <SynthbotUser> userMgr,
     UserService userService,
     PlaybackSessionService playbackSessionService,
     UserTokenService tokenService,
     PlaybackSessionService sessionService,
     PlaybackSessionRepository playbackRepo)
 {
     _logger                 = logger;
     _userManager            = userMgr;
     _userService            = userService;
     _playbackSessionService = playbackSessionService;
     _tokenService           = tokenService;
     _playbackRepo           = playbackRepo;
 }
Example #4
0
 public SongFinishedJob(
     ILogger <SongFinishedJob> logger,
     PlaybackSessionRepository sessionRepo,
     SongPlaybackRepository songRepo,
     SpotifyHttpClientFactory spotifyApiFactory,
     UserTokenService tokenService,
     SpotifyPlaybackService playbackService,
     IScheduler jobScheduler,
     IHubContext <DiscordBotHub> botHub)
 {
     _logger            = logger;
     _sessionRepo       = sessionRepo;
     _songRepo          = songRepo;
     _spotifyApiFactory = spotifyApiFactory;
     _playbackService   = playbackService;
     _jobScheduler      = jobScheduler;
     _botHub            = botHub;
 }
Example #5
0
        public async Task Upsert_New()
        {
            using (var context = await EntityFrameworkHelpers.SqlContextAsync())
            {
                var original = new PlaybackSession()
                {
                    Id = "foo",
                    SpotifyPlaylistId     = "spotify-playlist",
                    DiscordVoiceChannelId = "discord-channel-id"
                };

                var songRepo    = new SongPlaybackRepository(new NullLogger <SongPlaybackRepository>(), context);
                var sessionRepo = new PlaybackSessionRepository(new NullLogger <PlaybackSessionRepository>(), context, songRepo);

                await sessionRepo.UpsertSession(original);

                var result = await sessionRepo.GetById("foo");

                Assert.NotNull(result);
                Assert.Equal(result, original);
            }
        }
Example #6
0
        public async Task Upsert_New_WithCurrentPlayback()
        {
            using (var context = await EntityFrameworkHelpers.SqlContextAsync())
            {
                var originalSongTracker = new SongPlaybackTracker()
                {
                    Id             = "foo-song",
                    SpotifySongUri = "test-spotify-song-uri",
                    State          = PlaybackState.Playing,
                    Duration       = TimeSpan.FromSeconds(30),
                    StartedUtc     = DateTime.UtcNow
                };

                var original = new PlaybackSession()
                {
                    Id = "foo",
                    SpotifyPlaylistId     = "spotify-playlist",
                    DiscordVoiceChannelId = "discord-channel-id",
                    CurrentSongPlayback   = originalSongTracker
                };

                var songRepo    = new SongPlaybackRepository(new NullLogger <SongPlaybackRepository>(), context);
                var sessionRepo = new PlaybackSessionRepository(new NullLogger <PlaybackSessionRepository>(), context, songRepo);

                await sessionRepo.UpsertSession(original);

                var result = await sessionRepo.GetById("foo");

                var songResult = await songRepo.GetById("foo-song");

                Assert.NotNull(result);
                Assert.Equal(result, original);
                Assert.NotNull(result.CurrentSongPlayback);
                Assert.Equal(result.CurrentSongPlayback, originalSongTracker);
                Assert.Equal(result, songResult.PlaybackSession);
            }
        }
Example #7
0
 public DiscordUserController(DiscordUserRepository discordUserRepo, PlaybackSessionRepository playbackRepo)
 {
     _discordUserRepo = discordUserRepo;
     _playbackRepo    = playbackRepo;
 }