Example #1
0
        public string SubmitAddNewSong(string Song_Title, string Song_Guid, string Sel_Playlist_ID)
        {
            hypster_tv_DAL.Hypster_Entities   hypDB              = new hypster_tv_DAL.Hypster_Entities();
            hypster_tv_DAL.songsManagement    songsManager       = new hypster_tv_DAL.songsManagement();
            hypster_tv_DAL.memberManagement   userManager        = new hypster_tv_DAL.memberManagement();
            hypster_tv_DAL.playlistManagement playlistManagement = new hypster_tv_DAL.playlistManagement();
            hypster_tv_DAL.Member             curr_user          = new hypster_tv_DAL.Member();
            curr_user = userManager.getMemberByUserName(User.Identity.Name);

            if (curr_user.active_playlist == 0)
            {
                hypster_tv_DAL.Playlist create_playlist = new hypster_tv_DAL.Playlist();
                create_playlist.name   = curr_user.username + "'s playlist";
                create_playlist.userid = curr_user.id;


                string crtd   = DateTime.Now.ToString("yyyyMMdd");
                int    crtd_i = 0;
                Int32.TryParse(crtd, out crtd_i);
                create_playlist.create_time = crtd_i;


                if (create_playlist.name.Length > 60)
                {
                    create_playlist.name = create_playlist.name.Substring(0, 60);
                }


                hypDB.Playlists.AddObject(create_playlist);
                hypDB.SaveChanges();

                List <hypster_tv_DAL.Playlist> playlists_list = playlistManagement.GetUserPlaylists(curr_user.id);
                if (playlists_list.Count > 0)
                {
                    curr_user.active_playlist = playlists_list[0].id;
                    userManager.SetUserDefaultPlaylist(User.Identity.Name, curr_user.id, curr_user.active_playlist);
                }
                //else error - need to have dafult playlist
            }
            //-----------------------------------------------------------------------------------------

            //check if user selected playlist
            //-----------------------------------------------------------------------------------------
            if (Sel_Playlist_ID == null)
            {
                Sel_Playlist_ID = curr_user.active_playlist.ToString();
            }
            //-----------------------------------------------------------------------------------------

            // get last sort_number
            //-----------------------------------------------------------------------------------------
            short Sel_Sort_Order = 0;

            playlistManagement.IncrementPlaylistSongOrder(curr_user.id, Convert.ToInt32(Sel_Playlist_ID));
            //set sort order to first position
            Sel_Sort_Order = 1;
            //-----------------------------------------------------------------------------------------

            //get song by guid
            //-----------------------------------------------------------------------------------------
            hypster_tv_DAL.Song song = new hypster_tv_DAL.Song();
            song = songsManager.GetSongByGUID(Song_Guid);
            //-----------------------------------------------------------------------------------------
            if (Song_Title.Length > 75)
            {
                Song_Title = Song_Title.Substring(0, 75);
            }

            //-----------------------------------------------------------------------------------------
            if (song.id == 0) //add new song
            {
                var youtubeService = new YouTubeService(new BaseClientService.Initializer()
                {
                    ApiKey          = System.Configuration.ConfigurationManager.AppSettings["YouTubeAPIKEY"],
                    ApplicationName = System.Configuration.ConfigurationManager.AppSettings["YouTubeAPIKEYName"]
                });

                var searchListRequest = youtubeService.Search.List("id,snippet");
                searchListRequest.Q          = Song_Guid; // Replace with your search term.
                searchListRequest.MaxResults = 1;

                var          searchListResponse = searchListRequest.Execute();
                SearchResult video = new SearchResult();
                foreach (var searchResult in searchListResponse.Items)
                {
                    switch (searchResult.Id.Kind)
                    {
                    case "youtube#video":
                        video = searchResult;
                        break;
                    }
                }

                //need to modify to add more song params
                hypster_tv_DAL.Song new_song = new hypster_tv_DAL.Song();
                new_song.Title            = Song_Title;
                new_song.YoutubeId        = Song_Guid;
                new_song.adddate          = DateTime.Now;
                new_song.YoutubeProcessed = false;

                new_song.Author      = "";
                new_song.Rating      = 1;
                new_song.Syndication = 1;

                hypDB.Songs.AddObject(new_song);
                hypDB.SaveChanges();

                //get newely added song
                song = songsManager.GetSongByGUID(Song_Guid);

                //add to playlist data
                hypster_tv_DAL.PlaylistData new_playlistData = new hypster_tv_DAL.PlaylistData();
                new_playlistData.playlist_id = Convert.ToInt32(Sel_Playlist_ID);
                new_playlistData.songid      = song.id;
                new_playlistData.sortid      = Sel_Sort_Order;
                new_playlistData.userid      = userManager.getMemberByUserName(User.Identity.Name).id;
                hypDB.PlaylistDatas.AddObject(new_playlistData);
                hypDB.SaveChanges();
            }
            else //if song exist in database
            {
                //add to playlist data
                hypster_tv_DAL.PlaylistData new_playlistData = new hypster_tv_DAL.PlaylistData();
                new_playlistData.playlist_id = Convert.ToInt32(Sel_Playlist_ID);
                new_playlistData.songid      = song.id;
                new_playlistData.sortid      = Sel_Sort_Order;
                new_playlistData.userid      = curr_user.id;
                hypDB.PlaylistDatas.AddObject(new_playlistData);
                hypDB.SaveChanges();
            }
            return("A New Song, " + Song_Title + " (ID: " + Song_Guid + ") has been added to the Playlist, " + playlistManagement.GetPlaylistById(Convert.ToInt32(Sel_Playlist_ID))[0].name);
            //return RedirectPermanent("/Editors/managePlaylist/?playlist_id=" + Sel_Playlist_ID);
        }