示例#1
0
        /// <summary>
        /// Add a song to a playlist.
        /// </summary>
        /// <param name="songID">The songID</param>
        /// <param name="playListID">The PlaylistID</param>
        /// <param name="userKey">client mobile key.</param>
        /// <returns>The outcome of the opearation.</returns>
        public Response MobileAddSongToPlaylist(int songID, int playListID, long userKey)
        {
            int venueID = -1;
            int songExists;
            int mobileID;
            using (DatabaseConnectivity db = new DatabaseConnectivity())
            {
                // Try to establish a database connection
                Response r = db.OpenConnection();
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);

                // Convert the userKey to MobileID
                r = MobileKeyToID(userKey, out mobileID, db);
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);

                // Make sure the client isn't already logged out.
                r = MobileCheckStatus(mobileID, "!0", db);
                if (r.error)
                    return r;

                // Get the venue information from the playlist in DB.
                r = db.MobileGetVenueFromPlaylist(playListID, mobileID);
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);
                if (!int.TryParse(r.message.Trim(), out venueID))
                {
                    r.error = true;
                    r.message = "Could not figure out Venue from DB";
                    return r;
                }

                // Check to see if song exists.
                r = db.SongExists(venueID, songID);
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);
                if (!int.TryParse(r.message.Trim(), out songExists))
                {
                    r.error = true;
                    r.message = "Could not find song in venue's library.";
                    return r;
                }

                // Object to represent the song to add.
                Song song = new Song();
                song.ID = songID;

                // Get the current songs in the playlist.
                List<Song> songs;
                r = db.MobileGetSongsFromPlaylist(playListID, mobileID, out songs);
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);

                // Check to see if the song already exists.
                foreach (Song s in songs)
                {
                    if (s.ID == song.ID)
                    {
                        r.error = true;
                        r.message = "You already have that song in this playlist";
                        return r;
                    }
                }

                // Otherwise, add this to the playlist.
                songs.Add(song);
                r = db.MobileSetPlaylistSongs(playListID, mobileID, songs);
                if (r.error)
                    return (Response)Common.LogError(r.message, Environment.StackTrace, r, 0);
                return r;
            }
        }
示例#2
0
        /// <summary>
        /// Add a song to a playlist.
        /// </summary>
        /// <param name="songID">The songID</param>
        /// <param name="playListID">The PlaylistID</param>
        /// <param name="userKey">client mobile key.</param>
        /// <returns>The outcome of the opearation.</returns>
        public Response MobileAddSongToPlaylist(int songID, int playListID, long userKey)
        {
            int venueID = -1;
            int songExists;
            int mobileID;
            using (DatabaseConnectivity db = new DatabaseConnectivity())
            {
                // Try to establish a database connection
                ExpResponse r = db.OpenConnection();
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);

                // Convert the userKey to MobileID
                r = MobileKeyToID(userKey, out mobileID, db);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);

                // Make sure the client isn't already logged out.
                bool validStatus;
                r = MobileCheckStatus(mobileID, "!0", db, out validStatus);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);
                if (!validStatus)
                {
                    r.setErMsg(true, Messages.ERR_STATUS_IS_NOT_IN);
                    return r;
                }

                // Get the venue information from the playlist in DB.
                r = db.MobileGetVenueFromPlaylist(playListID, mobileID);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);
                if (!int.TryParse(r.message.Trim(), out venueID))
                {
                    r.setErMsgStk(true, "Could not figure out Venue from DB", Environment.StackTrace);
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);
                }

                // Check to see if song exists.
                r = db.SongExists(venueID, songID);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);
                if (!int.TryParse(r.message.Trim(), out songExists))
                {
                    r.setErMsg(true, Messages.MSG_SONG_NOT_FOUND);
                    return r;
                }

                // Object to represent the song to add.
                Song song = new Song();
                song.ID = songID;

                // Get the current songs in the playlist.
                List<Song> songs;
                r = db.MobileGetSongsFromPlaylist(playListID, mobileID, out songs);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);

                // Check to see if the song already exists.
                foreach (Song s in songs)
                {
                    if (s.ID == song.ID)
                    {
                        r.setErMsg(true, Messages.ERR_PLYLST_DUP_SONG);
                        return r;
                    }
                }

                // Otherwise, add this to the playlist.
                songs.Add(song);
                r = db.MobileSetPlaylistSongs(playListID, mobileID, songs);
                if (r.error)
                    return Common.LogErrorRetNewMsg(r, Messages.ERR_SERVER, Common.LogFile.Mobile);
                return r;
            }
        }