예제 #1
0
 public void PutIt(OpenTidlSession session, JsonList <JsonListItem <ArtistModel> > itemsToPut)
 {
     foreach (var itemToPut in itemsToPut.Items)
     {
         session.AddFavoriteArtist(itemToPut.Item.Id);
     }
 }
예제 #2
0
 public void PutIt(OpenTidlSession session, JsonList <PlaylistModel> itemsToPut)
 {
     foreach (var itemToPut in itemsToPut.Items)
     {
         session.AddFavoritePlaylist(itemToPut.Uuid);
     }
 }
예제 #3
0
        public TidalApiLogic(OpenTidlSession tidlSession)
        {
            this.tidlSession = tidlSession;
            var defaultConfiguration = ClientConfiguration.Default;

            tidlClient  = new OpenTidlClient(defaultConfiguration);
            this.logger = new ConsoleLogger();
        }
예제 #4
0
        public async Task TestLogin()
        {
            const string    title       = "Test";
            OpenTidlSession tidlSession = await loginLogic.BaseLogin();

            PlaylistLogic playlistLogic = new PlaylistLogic(tidlSession);
            var           res           = await playlistLogic.CreateUserPlaylistWithTitle("Test");

            Assert.AreEqual(title, res.Title);
        }
예제 #5
0
 /// <summary>
 /// Sets the session to be used in future request.
 /// </summary>
 /// <param name="response">A login response obtained from <see cref="LoginAsync"/>.</param>
 /// <returns>True if it succeeded, otherwise false.</returns>
 public override async Task <bool> RestoreSessionAsync(AuthenticationResponse response)
 {
     try
     {
         session = await client.RestoreSession(response.Token);
     }
     catch (OpenTidlException)
     {
         return(false);
     }
     return(session != null);
 }
예제 #6
0
        public async Task TestAddPlaylistTracks()
        {
            const string    playlistETag = "Demo";
            OpenTidlSession tidlSession  = await loginLogic.BaseLogin();

            PlaylistLogic playlistLogic = new PlaylistLogic(tidlSession);
            List <int>    mockIds       = new List <int> {
                1, 2, 3
            };
            var res = await playlistLogic.AddPlaylistTracks(playlistETag, mockIds, 0);

            Assert.AreEqual(playlistETag, res.ETag);
        }
        public async Task CreateUserPlaylistWithTitleTest()
        {
            var    guid  = Guid.NewGuid();        //reusable as name might be unique
            string title = $"Test_{guid}";

            logger.Write(LogLevel.Info, $"The title is : {title}");
            OpenTidlSession tidlSession = await loginLogic.BaseLogin();

            var tidalApiLogic = new TidalApiLogic(tidlSession);
            var res           = await tidalApiLogic.CreateUserPlaylistWithTitle(title);

            Assert.AreEqual(title, res.Title);
        }
        public void loginUsertoTidalStreamingServiceTest()
        {
            String username = "******";
            String password = "******";

            OpenTidlSession loginSessionResult = testInfrastructureClass.loginUsertoTidalStreamingService(openTidlClient, username, password);

            String FirstName = loginSessionResult.GetUser().Result.FirstName;

            FirstName.Should().Equals("Omar");
            String LastName = loginSessionResult.GetUser().Result.LastName;

            LastName.Should().Equals("Alkhateeb");
            String email = loginSessionResult.GetUser().Result.Email;

            email.Should().Equals("*****@*****.**");
        }
예제 #9
0
        public async Task <bool> login(string username, string password)
        {
            bool loggedIn = false;

            try
            {
                session = await client.LoginWithUsername(username, password);

                loggedIn = true;
                await getSubDetails();
                await getAlbums();
            }
            catch
            {
            }
            isLoggedIn = loggedIn;
            return(loggedIn);
        }
        public async Task AddPlaylistTracksTest()
        {
            OpenTidlSession tidlSession = await loginLogic.BaseLogin();

            var    tidalApiLogic = new TidalApiLogic(tidlSession);
            string title         = $"Test_{Guid.NewGuid()}";    //reusable as name might be unique

            logger.Write(LogLevel.Info, $"The title is : {title}");
            var res = await tidalApiLogic.CreateUserPlaylistWithTitle(title);

            var indices = new List <int> {
                126462757
            };                                                    //from actual website - not finded another way
            var addPlaylistTracksResponse = await tidalApiLogic.AddPlaylistTracks(res.Uuid, res.ETag, indices);

            var userPlayList = await tidlSession.GetUserPlaylists();

            Assert.AreEqual(userPlayList.ETag, addPlaylistTracksResponse.ETag);
        }
        private static ClaimsIdentity BuildClaimsIdentity(LoginViewModel model, OpenTidlSession session, UserModel userModel)
        {
            var claims = new[]
            {
                // Claims to support default antiforgery provider
                new Claim(ClaimTypes.NameIdentifier, model.Username),
                new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider",
                          "ASP.NET Identity", "http://www.w3.org/2001/XMLSchema#string"),

                // Name
                new Claim(ClaimTypes.Name, model.Username),

                // Custom claims for Tidal session
                new Claim(TidalClaimTypes.TidalLoginModelSerialized, JsonConvert.SerializeObject(session.LoginResult)),
                new Claim(TidalClaimTypes.TidalUserModelSerialized, JsonConvert.SerializeObject(userModel))
            };

            return(new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie));
        }
예제 #12
0
        public async Task FullFlowTest()
        {
            OpenTidlSession tidlSession = await loginLogic.BaseLogin();

            var    tidalApiLogic = new TidalApiLogic(tidlSession);
            string title         = $"Test_{Guid.NewGuid()}";

            logger.Write(LogLevel.Info, $"The title is : {title}");
            var res = await tidalApiLogic.CreateUserPlaylistWithTitle(title);

            var indices = new List <int> {
                126462757
            };                                        //from actual website
            await tidalApiLogic.AddPlaylistTracks(res.Uuid, res.ETag, indices);

            var response = await tidalApiLogic.DeletePlaylistTracks(res.Uuid);

            Assert.AreEqual(response, true);
        }
예제 #13
0
        public override async Task <AuthenticationResponse> LoginAsync(string username, string password)
        {
            try
            {
                session = await client.LoginWithUsername(username, password);
            }
            catch (OpenTidlException)
            {
                return(null);
            }
            var user = await session.GetUser();

            return(new AuthenticationResponse
            {
                Token = session.SessionId,
                UserIdentity = null,
                UserName = String.IsNullOrEmpty(user.FirstName) && String.IsNullOrEmpty(user.LastName) ?
                           user.Email : $"{user.FirstName} {user.LastName} ({user.Email})"
            });
        }
 public TidlBL(string username = "******", string password = "******")
 {
     StaticLogger.LogInfo(this.GetType(), "Gettins session from constructor");
     session = this.Login(username, password);
 }
예제 #15
0
 public override void ClearSession()
 {
     session           = null;
     settings.Response = null;
 }
예제 #16
0
 public PlaylistLogic(OpenTidlSession tidlSession)
 {
     this.tidlSession = tidlSession;
 }
예제 #17
0
 public TidlApi(OpenTidlSession tidlSession)
 {
     this.tidlSession = tidlSession;
 }
        public async Task BasicLoginTest()
        {
            OpenTidlSession result = await loginLogic.BaseLogin();

            Assert.IsNotNull(result);
        }
예제 #19
0
 public MigrationExecutor(OpenTidlSession session1, OpenTidlSession session2)
 {
     _session1 = session1;
     _session2 = session2;
 }