Ejemplo n.º 1
0
 private void loadSuggestedTracks_backgroundWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
 {
     ReccommendTrackControl[] temp = new ReccommendTrackControl[10];
     string[] songUrl = e.Argument as string[];
     for (int i = 0; i < 10; i++)
     {
         string url = songUrl[i];
         temp[i] = new ReccommendTrackControl(mainscr);
         string[] artists = GetSongData.GetSongArtist(url);
         string   name    = string.Empty;
         foreach (string artist in artists)
         {
             if (artists[artists.Length - 1] == artist)
             {
                 name += artist;
             }
             else
             {
                 name += artist + ";";
             }
         }
         temp[i].setSongArtist(name);
         temp[i].Url = url;
         PictureBox tempbx = new PictureBox();
         tempbx.Load(GetSongData.GetSongCover(url));
         temp[i].setSongCover(tempbx.Image);
         temp[i].setSongName(GetSongData.GetSongName(url));
     }
     e.Result = temp;
 }
Ejemplo n.º 2
0
        static public string addTrackToDatabase(string trackUrl)
        {
            //string[0]=title,[1]=link
            string title    = GetSongData.getTrackTitle(trackUrl);
            string sqlQuery = "insert into Track output inserted.trackID values(@trackTitle,@trackLink)";

            DataTable Table = new DataTable();

            SqlConnection sqlconnection = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);

            sqlconnection.Open();

            using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection))
            {
                cmd.Parameters.AddWithValue("@trackTitle", title);
                cmd.Parameters.AddWithValue("@trackLink", trackUrl);
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    Table.Load(reader);
                }
            }
            DataTable artistTable = new DataTable();

            ThreadPool.QueueUserWorkItem(delegate(object obj)
            {
                string[] artist = GetSongData.GetSongArtist(trackUrl);
                foreach (string item in artist)
                {
                    artistTable.Clear();
                    string temp = TiengVietKhongDau.TiengVietKhongDau.RemoveSign4VietnameseString(item);
                    sqlQuery    = "select * from Artist where artistName=@artistName";
                    using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection))
                    {
                        cmd.Parameters.AddWithValue("@artistName", temp);
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            artistTable.Load(reader);
                        }
                    }
                    if (artistTable.Rows.Count != 0)
                    {
                        string artistID = artistTable.Rows[0]["artistID"].ToString();
                        sqlQuery        = "insert into ArtistHasTrack values(@artistID,@trackID)";
                        using (SqlCommand cmd = new SqlCommand(sqlQuery, sqlconnection))
                        {
                            cmd.Parameters.AddWithValue("@artistID", artistID);
                            cmd.Parameters.AddWithValue("@trackID", Table.Rows[0][0].ToString());
                            cmd.ExecuteNonQuery();
                        }
                    }
                }

                sqlconnection.Close();
            });
            return(Table.Rows[0][0].ToString());
        }
Ejemplo n.º 3
0
        private void load_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            string lastTrackID = "";

            foreach (DataRow track in trackTable.Rows)
            {
                if (track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString();
                }
                else
                {
                    TrackInfo temp = new TrackInfo();
                    temp.TrackID = track["trackID"].ToString();
                    temp.Artist  = track["artistName"].ToString();

                    temp.Title     = track["trackTitle"].ToString();
                    temp.TrackLink = track["trackLink"].ToString();

                    if (temp.Artist == "")
                    {
                        string[] artists = GetSongData.GetSongArtist(temp.TrackLink);
                        for (int i = 0; i < artists.Length; i++)
                        {
                            if (i != artists.Length - 1)
                            {
                                temp.Artist += artists[i] + "; ";
                            }
                            else
                            {
                                temp.Artist += artists[i];
                            }
                        }
                    }
                    if (Database.checkIfTrackLoved(temp.TrackID, AlbumForm.mainScr.CurrentUser.UserID))
                    {
                        temp.IsLoved = true;
                    }
                    else
                    {
                        temp.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink));


                    string timeString = time.ToString(@"mm\:ss");
                    temp.Time = timeString;

                    timeInSec += (int)time.TotalSeconds;
                    trackInfos.Add(temp);
                    lastTrackID = track["trackID"].ToString();
                }
            }
            isLoaded = true;
        }
Ejemplo n.º 4
0
        public void loadTrack()
        {
            string lastTrackID = "";

            trackTable = Database.loadTrackTableInTracks(mainScr.CurrentUser.UserID);
            foreach (DataRow item in trackTable.Rows)
            {
                if (lastTrackID == item["trackID"].ToString() && lastTrackID != "")
                {
                    trackInfos[trackInfos.Count - 1].Artist += "; " + item["artistName"].ToString();
                }
                else
                {
                    TrackInfo tempTrack = new TrackInfo();
                    string    trackLink = item["trackLink"].ToString();
                    tempTrack.TrackLink = trackLink;
                    tempTrack.TrackID   = item["trackID"].ToString();
                    using (PictureBox pb = new PictureBox())
                    {
                        pb.Load(GetSongData.GetSongCover(trackLink));
                        tempTrack.Cover = pb.Image;
                    }

                    tempTrack.Title  = item["trackTitle"].ToString();
                    tempTrack.Artist = item["artistName"].ToString();
                    if (tempTrack.Artist == "")
                    {
                        tempTrack.Artist = GetSongData.loadArtist(tempTrack.TrackLink);
                    }
                    DateTime dateAdded = DateTime.Parse(item["dateAdded"].ToString());
                    tempTrack.DateAdded = dateAdded.ToShortDateString();

                    if (Database.checkIfTrackLoved(tempTrack.TrackID, mainScr.CurrentUser.UserID))
                    {
                        tempTrack.IsLoved = true;
                    }
                    else
                    {
                        tempTrack.IsLoved = false;
                    }


                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(tempTrack.TrackLink));


                    string timeString = time.ToString(@"mm\:ss");
                    tempTrack.Time = timeString;

                    lastTrackID = tempTrack.TrackID;
                    trackInfos.Add(tempTrack);
                }
            }
            addTrackInfoToRow(trackInfos.ToArray());
        }
Ejemplo n.º 5
0
 public void addRow(TrackInfo track)
 {
     if (track.Cover == null)
     {
         PictureBox pb = new PictureBox();
         pb.Load(GetSongData.GetSongCover(track.TrackLink));
         track.Cover = pb.Image;
     }
     addTrackInfoToRow(new TrackInfo[1] {
         track
     });
     track_gridView.Rows.Add(rows[rows.Count - 1]);
 }
Ejemplo n.º 6
0
        public TrackInfo loadTrackInfo(string trackID)
        {
            TrackInfo track = new TrackInfo();

            track.TrackID = trackID;
            DataTable infoTable   = Database.getTrackBaseOnID(track.TrackID);
            string    lastTrackID = "";

            foreach (DataRow Track in infoTable.Rows)
            {
                if (Track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    track.Artist += ";" + Track["artistName"].ToString();
                }
                else
                {
                    track.Artist    = Track["artistName"].ToString();
                    track.Title     = Track["trackTitle"].ToString();
                    track.TrackLink = Track["trackLink"].ToString();
                    if (track.Artist == "")
                    {
                        track.Artist = GetSongData.loadArtist(track.TrackLink);
                    }
                    using (PictureBox pb = new PictureBox())
                    {
                        pb.Load(GetSongData.GetSongCover(track.TrackLink));
                        track.Cover = pb.Image;
                    }

                    if (Database.checkIfTrackLoved(track.TrackID, homeScr.mainScr.CurrentUser.UserID))
                    {
                        track.IsLoved = true;
                    }
                    else
                    {
                        track.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(track.TrackLink));

                    string timeString = time.ToString(@"mm\:ss");
                    track.Time = timeString;


                    lastTrackID = track.TrackID;
                }
            }


            return(track);
        }
Ejemplo n.º 7
0
        public void addTrack(string trackID)
        {
            tempTrackTable = Database.getTrackBaseOnID(trackID);
            string lastTrackID = "";

            foreach (DataRow track in tempTrackTable.Rows)
            {
                if (track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString();
                }
                else
                {
                    TrackInfo temp = new TrackInfo();

                    temp.TrackID   = track["trackID"].ToString();
                    temp.Artist    = track["artistName"].ToString();
                    temp.Title     = track["trackTitle"].ToString();
                    temp.TrackLink = track["trackLink"].ToString();
                    if (temp.Artist == "")
                    {
                        temp.Artist = GetSongData.loadArtist(temp.TrackLink);
                    }

                    temp.DateAdded = DateTime.Now.ToShortDateString();
                    if (Database.checkIfTrackLoved(temp.TrackID, playlistFm.mainScr.CurrentUser.UserID))
                    {
                        temp.IsLoved = true;
                    }
                    else
                    {
                        temp.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink));

                    string timeString = time.ToString(@"mm\:ss");
                    temp.Time  = timeString;
                    timeInSec += (int)time.TotalSeconds;
                    trackInfos.Add(temp);
                    lastTrackID = track["trackID"].ToString();
                }
            }
            loadCover(false);
            numberOfTracks_label.Text = ++trackCount + " Tracks";
            if (playlistFm.playlistDetail.playlistContainer == this && !(playlistFm.mainScr.Controls[0] is SongDetail))
            {
                playlistFm.playlistDetail.setDetailInfo(trackInfos, cover.ToArray(), this, isChart);
            }
        }
Ejemplo n.º 8
0
 private void pic_time_Track_worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
 {
     trackImg.Clear();
     trackTime.Clear();
     foreach (DataRow item in trackTable.Rows)
     {
         using (PictureBox pb = new PictureBox())
         {
             pb.Load(GetSongData.GetSongCover(item["trackLink"].ToString()));
             trackImg.Add(pb.Image);
         }
         TimeSpan time       = TimeSpan.FromSeconds(GetSongData.GetSongDuration(item["trackLink"].ToString()));
         string   timeString = time.ToString(@"mm\:ss");
         trackTime.Add(timeString);
     }
 }
Ejemplo n.º 9
0
        //load các track trong playlist vào list trackinfos
        private void load_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            string lastTrackID = "";

            foreach (DataRow track in trackTable.Rows)
            {
                if (track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString();
                }
                else
                {
                    TrackInfo temp = new TrackInfo();

                    temp.TrackID = track["trackID"].ToString();
                    temp.Artist  = track["artistName"].ToString();

                    temp.Title     = track["trackTitle"].ToString();
                    temp.TrackLink = track["trackLink"].ToString();
                    if (temp.Artist == "")
                    {
                        temp.Artist = GetSongData.loadArtist(temp.TrackLink);
                    }
                    DateTime dateAdded = DateTime.Parse(track["dateAdded"].ToString());
                    temp.DateAdded = dateAdded.ToShortDateString();
                    if (Database.checkIfTrackLoved(temp.TrackID, playlistFm.mainScr.CurrentUser.UserID))
                    {
                        temp.IsLoved = true;
                    }
                    else
                    {
                        temp.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink));

                    string timeString = time.ToString(@"mm\:ss");
                    temp.Time = timeString;

                    timeInSec += (int)time.TotalSeconds;
                    trackInfos.Add(temp);
                    lastTrackID = track["trackID"].ToString();
                }
            }
            loadCover(true);
            isLoaded = true;
        }
Ejemplo n.º 10
0
        private void load_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            infoTable = Database.getTrackBaseOnID(track.TrackID);
            string lastTrackID = "";

            foreach (DataRow Track in infoTable.Rows)
            {
                if (Track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    track.Artist += ";" + Track["artistName"].ToString();
                }
                else
                {
                    track.Artist    = Track["artistName"].ToString();
                    track.Title     = Track["trackTitle"].ToString();
                    track.TrackLink = Track["trackLink"].ToString();
                    if (track.Artist == "")
                    {
                        track.Artist = GetSongData.loadArtist(track.TrackLink);
                    }
                    using (PictureBox pb = new PictureBox())
                    {
                        pb.Load(GetSongData.GetSongCover(track.TrackLink));
                        track.Cover = pb.Image;
                    }

                    if (Database.checkIfTrackLoved(track.TrackID, mainScr.CurrentUser.UserID))
                    {
                        track.IsLoved = true;
                    }
                    else
                    {
                        track.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(track.TrackLink));

                    string timeString = time.ToString(@"mm\:ss");
                    track.Time = timeString;


                    lastTrackID = track.TrackID;
                }
            }
        }
Ejemplo n.º 11
0
        private void detail_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            #region load track detail

            foreach (DataRow track in trackTable.Rows)
            {
                //stop add at
                if (trackTable.Rows.Count > 15 && trackTable.Rows[15] == track)
                {
                    break;
                }

                TrackInfo tempTrack = new TrackInfo();
                tempTrack.Title     = track["trackTitle"].ToString();
                tempTrack.Artist    = track["artistName"].ToString();
                tempTrack.TrackLink = track["trackLink"].ToString();
                tempTrack.TrackID   = track["trackID"].ToString();

                TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(tempTrack.TrackLink));

                string timeString = time.ToString(@"mm\:ss");
                tempTrack.Time = timeString;

                using (PictureBox pb = new PictureBox())
                {
                    pb.Load(GetSongData.GetSongCover(tempTrack.TrackLink));
                    tempTrack.Cover = pb.Image;
                }

                if (Database.checkIfTrackLoved(tempTrack.TrackID, artistFm.mainScr.CurrentUser.UserID))
                {
                    tempTrack.IsLoved = true;
                }
                else
                {
                    tempTrack.IsLoved = false;
                }

                trackInfos.Add(tempTrack);
            }

            #endregion load track detail

            isLoaded = true;
        }
Ejemplo n.º 12
0
        private void load_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            trackTable.Clear();
            //load trackTable
            trackTable = Database.getTrackInMyMix(mixID);

            //duyet tung track trong trackTable
            string lastTrackID = "";

            foreach (DataRow track in trackTable.Rows)
            {
                //neu trung trackID thi add them artist
                if (track["trackID"].ToString() == lastTrackID && lastTrackID != "")
                {
                    trackInfos[trackInfos.Count - 1].Artist += ";" + track["artistName"].ToString();
                }
                else
                {
                    TrackInfo temp = new TrackInfo();
                    temp.TrackID   = track["trackID"].ToString();
                    temp.Artist    = track["artistName"].ToString();
                    temp.Title     = track["trackTitle"].ToString();
                    temp.TrackLink = track["trackLink"].ToString();
                    if (Database.checkIfTrackLoved(temp.TrackID, mixForm.mainScr.CurrentUser.UserID))
                    {
                        temp.IsLoved = true;
                    }
                    else
                    {
                        temp.IsLoved = false;
                    }

                    TimeSpan time = TimeSpan.FromSeconds(GetSongData.GetSongDuration(temp.TrackLink));


                    string timeString = time.ToString(@"mm\:ss");
                    temp.Time = timeString;


                    trackInfos.Add(temp);
                    lastTrackID = track["trackID"].ToString();
                }
            }
            isLoaded = true;
        }
Ejemplo n.º 13
0
        private void loadCover_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            int trackInfosIndex = 0;

            while (cover.Count < 4 && trackInfosIndex < trackInfos.Count)
            {
                using (PictureBox pb = new PictureBox())
                {
                    pb.Load(GetSongData.GetSongCover(trackInfos[trackInfosIndex++].TrackLink));
                    cover.Add(pb.Image);
                }
            }
            while (cover.Count < 4)
            {
                cover.Add(Properties.Resources.emptyplaylist);
            }
            e.Result = e.Argument;
        }
Ejemplo n.º 14
0
        private void info_worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                return;
            }
            DataTable infoTable = e.Result as DataTable;

            if (infoTable.Rows.Count != 0)
            {
                artistName_Label.Text = infoTable.Rows[0]["artistName"].ToString();

                ThreadPool.QueueUserWorkItem(delegate {
                    PictureBox pb = new PictureBox();
                    pb.Load(GetSongData.getArtistCover(artistName_Label.Text));
                    this.BeginInvoke((Action) delegate {
                        artistCover_panel.BackgroundImage = pb.Image;
                    });
                });
            }
        }
Ejemplo n.º 15
0
        private void setContainerUI()
        {
            //load cover,name,... cho album container

            albumName_label.Text = trackTable.Rows[0]["albumTitle"].ToString();
            albumYear_label.Text = trackTable.Rows[0]["albumYear"].ToString();
            if (albumYear_label.Text == "0")
            {
                albumYear_label.Text = "";
            }
            ThreadPool.QueueUserWorkItem(delegate {
                PB.Load(GetData.GetSongData.GetSongCover(trackTable.Rows[0]["albumLink"].ToString()));
                string artistText = "";
                DataTable albumArtistTable;
                if (trackTable.Rows[0]["artistID"].ToString() == "")
                {
                    string[] artistArr = GetSongData.GetSongArtist(trackTable.Rows[0]["albumLink"].ToString());
                    foreach (string art in artistArr)
                    {
                        if (art != artistArr[artistArr.Length - 1])
                        {
                            artistText += art + ";";
                        }
                        else
                        {
                            artistText += art;
                        }
                    }
                }
                else
                {
                    albumArtistTable = Database.getArtistBaseOnID(trackTable.Rows[0]["artistID"].ToString());
                    artistText       = trackTable.Rows[0]["artistname"].ToString();
                }
                this.BeginInvoke((Action) delegate {
                    albumCover_panel.BackgroundImage = PB.Image;
                    albumArtist_label.Text           = artistText;
                });
            });
        }
Ejemplo n.º 16
0
        private void suggestedSong_worker_DoWork(object sender, DoWorkEventArgs e)
        {
            mainTrack = loadTrackInfo(trackID);
            this.BeginInvoke((Action) delegate()
            {
                songName_label.Text        = mainTrack.Title;
                songCover_picturebox.Image = (mainTrack.Cover);
            });
            string[] songUrl = GetSongData.GetSuggetSongs(mainTrack.TrackLink);
            e.Result = songUrl;



            TrackInfo track = new TrackInfo();

            for (int i = 0; i < 10; i++)
            {
                track.TrackLink = songUrl[i];

                if (!Database.checkTrackExisted(track.TrackLink))
                {
                    track.TrackID = Database.addTrackToDatabase(track.TrackLink);
                    track.IsLoved = false;
                }
                else
                {
                    track.TrackID = Database.getTrackIdBaseOnTrackLink(track.TrackLink);
                }
                this.BeginInvoke((Action) delegate()
                {
                    temp.Add(new TrackContainer_Home(track.TrackID, homeScr.mainScr));
                    mrse.Set();
                });
                mrse.WaitOne();
            }
        }
Ejemplo n.º 17
0
        private void createMixForUser(DataRow User)
        {
            int userID = int.Parse(User["userID"].ToString());;

            DataTable lovedArtist = Database.getArtistThatUserFollow(userID);

            if (lovedArtist.Rows.Count == 0)
            {
                richTextBox1.BeginInvoke((Action) delegate()
                {
                    richTextBox1.Text += "User doesn't has loved artist : " + User["username"].ToString() + "\n";
                });
                return;
            }

            string mixID = createMixForUser(userID.ToString());
            //the max number of tracks each artist
            int numberOfTrackEachArtist;

            if (lovedArtist.Rows.Count <= 3)
            {
                numberOfTrackEachArtist = 20 / lovedArtist.Rows.Count;
            }
            else
            {
                numberOfTrackEachArtist = 6;
            }

            int countTrackInMix = 0;

            Random     randArtist = new Random(DateTime.Now.Second);
            List <int> randRes    = new List <int>();
            int        loopCount  = (lovedArtist.Rows.Count <= 3 ? lovedArtist.Rows.Count : 3);

            for (int a = 0; a < loopCount; a++)
            {
                int currentIndex = randArtist.Next(0, lovedArtist.Rows.Count);
                while (randRes.Contains(currentIndex))
                {
                    currentIndex = randArtist.Next(0, lovedArtist.Rows.Count);
                }
                randRes.Add(currentIndex);

                //

                string name = lovedArtist.Rows[currentIndex]["artistName"].ToString();
                string id   = lovedArtist.Rows[currentIndex]["spotifyID"].ToString();
                //api url to get similar artist

                string        url               = "https://musicroamer.com/api/v1/spotify/similarArtists?artist=" + name + "&artistID=" + id + "&expandArtist=false";
                JObject       apiRes            = getResponseJObject(url);
                JToken[]      suggestedArtist   = apiRes["artists"].ToArray();
                List <string> availableArtistID = new List <string>();
                //find available artist in database
                for (int i = 0; i < suggestedArtist.Length; i++)
                {
                    Random     randSuggestedArtist = new Random(DateTime.Now.Second);
                    List <int> randSuggestRes      = new List <int>();
                    int        suggestArtistIndex  = randSuggestedArtist.Next(0, suggestedArtist.Length);

                    while (randSuggestRes.Contains(suggestArtistIndex))
                    {
                        suggestArtistIndex = randSuggestedArtist.Next(0, suggestedArtist.Length);
                    }
                    randSuggestRes.Add(suggestArtistIndex);

                    if (checkArtistExist(suggestedArtist[suggestArtistIndex]["id"].ToString()))
                    {
                        availableArtistID.Add(suggestedArtist[suggestArtistIndex]["id"].ToString());
                    }
                }

                //add track of available artist
                for (int f = 0; f < availableArtistID.Count; f++)
                {
                    int numberOfTrackOfEachSuggestArtist;
                    if (availableArtistID.Count <= numberOfTrackEachArtist)
                    {
                        numberOfTrackOfEachSuggestArtist = numberOfTrackEachArtist / availableArtistID.Count;
                    }
                    else
                    {
                        numberOfTrackOfEachSuggestArtist = 1;
                    }
                    int       countTrackOfSuggestedArtist = 0;
                    DataTable artist_Track = Database.getTrack_Artist(availableArtistID[f], 93939);

                    Random     rnd       = new Random(DateTime.Now.Second);
                    List <int> randomNum = new List <int>();
                    for (int j = 0; j < numberOfTrackOfEachSuggestArtist; j++)
                    {
                        int index = rnd.Next(0, artist_Track.Rows.Count);
                        while (randomNum.Contains(index))
                        {
                            index = rnd.Next(0, artist_Track.Rows.Count);
                        }
                        randomNum.Add(index);

                        try
                        {
                            addTrackToMix(artist_Track.Rows[index]["trackID"].ToString(), mixID);
                            countTrackInMix++; countTrackOfSuggestedArtist++;
                        }
                        catch (Exception)
                        {
                        }
                    }

                    //

                    //
                }
                if (countTrackInMix > 20)
                {
                    break;
                }
            }
            //khi chua du 20 bai, add them nhac trong track vao
            DataTable lovedTrack = new DataTable();

            lovedTrack = Database.loadTrackTableInTracks(userID);

            for (int i = 0; i < lovedTrack.Rows.Count && countTrackInMix < 20; i++)
            {
                string[] suggestTrack = GetSongData.GetSuggetSongs(lovedTrack.Rows[i]["trackLink"].ToString());
                try
                {
                    string trackID = "";
                    if (!Database.checkTrackExisted(suggestTrack[0]))
                    {
                        trackID = Database.addTrackToDatabase(suggestTrack[0]);
                    }
                    else
                    {
                        trackID = Database.getTrackIdBaseOnTrackLink(suggestTrack[0]);
                    }
                    addTrackToMix(trackID, mixID);
                    countTrackInMix++;
                }
                catch (Exception)
                {
                }
            }
            richTextBox1.BeginInvoke((Action) delegate()
            {
                richTextBox1.Text += "Created mix for : " + User["username"].ToString() + "\n";
            });
        }
Ejemplo n.º 18
0
        public void loadTrack()
        {
            try
            {
                trackTable = Database.getTrackTable_Search(searchKeyWord);
                this.BeginInvoke((Action) delegate()
                {
                    pic_time_Track_worker.RunWorkerAsync();
                });
                if (trackTable.Rows.Count == 0)
                {
                    return;
                }
                else
                {
                    foreach (DataRow item in trackTable.Rows)
                    {
                        TrackInfo tempTrack = new TrackInfo();

                        string trackLink = item["trackLink"].ToString();
                        tempTrack.TrackLink = trackLink;
                        tempTrack.TrackID   = item["trackID"].ToString();



                        artistTable = Database.getArtistOfTrack(item["trackID"].ToString());
                        string artist = "";
                        foreach (DataRow artistName in artistTable.Rows)
                        {
                            if (artistTable.Rows[artistTable.Rows.Count - 1] == artistName)
                            {
                                artist += artistName["artistName"].ToString();
                            }
                            else
                            {
                                artist += artistName["artistName"].ToString() + ";";
                            }
                        }
                        tempTrack.Title = item["trackTitle"].ToString();

                        if (artist == "")
                        {
                            string[] artists = GetSongData.GetSongArtist(tempTrack.TrackLink);
                            foreach (string artistName in artists)
                            {
                                if (artists[artists.Length - 1] == artistName)
                                {
                                    artist += artistName;
                                }
                                else
                                {
                                    artist += artistName + ";";
                                }
                            }
                        }
                        tempTrack.Artist = artist;


                        //check if loved
                        if (Database.checkIfTrackLoved(tempTrack.TrackID, mainScr.CurrentUser.UserID))
                        {
                            tempTrack.IsLoved = true;
                        }
                        else
                        {
                            tempTrack.IsLoved = false;
                        }

                        trackInfos.Add(tempTrack);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message + "track");
            }
        }