/// <summary>
        /// Descarga una canción
        /// </summary>
        /// <param name="pSongID">
        /// Id de la canción a descargar
        /// </param>
        /// <param name="pSongName">
        /// Nombre de la canción a descargar 
        /// </param>
        /// <param name="pDestinyPath">
        /// Destino de la descarga
        /// </param>
        /// <returns>
        /// bool que es true si se descarga correctamente.
        /// </returns>
        public bool donwloadSong(string pSongID, string pSongName, string pDestinyPath)
        {
            BlobManager bm = new BlobManager();

            return bm.downloadSong(Convert.ToInt32(pSongID), pSongName);
        }
        /// <summary>
        /// Sube todas las canciones con su version actual a la base de la nube
        /// </summary>
        /// <param name="user_name">Nombre de usuario</param>
        public async Task<string> uploadDatabase(string user_name)
        {
            string debug_message = "";

            RestTools rt = new RestTools();

            List<DataSong> datasongs = DatabaseManager.getDesynchronizeSongsByUser(user_name);

            debug_message = datasongs.Count.ToString();

            for (int i = 0; i < datasongs.Count; i++)
            {
                
                int lc_song_id = Convert.ToInt32(datasongs[i]._LocalSongID);

                string song_name = DatabaseManager.getSongName(user_name, lc_song_id);

                //se crea la cancion
                string song_directory = datasongs[i]._SongDirectory;
                
                //sincronizacion

                Song syncSong = await rt.createSong(song_directory);
                DatabaseManager.setSyncId2Song(lc_song_id, syncSong.song_id);

                //se agrega la version
                Version lc_version = DatabaseManager.getVersion(lc_song_id);
                lc_version.song_id = syncSong.song_id;

                Version syncVersion = await rt.syncVersion(lc_version);
                DatabaseManager.setSyncIdVersion(lc_version.version_id, syncVersion.version_id, syncSong.song_id);

                bool link = await rt.setMetadataSong(syncSong.song_id, syncVersion.version_id);
                //se hace la propiedad si se unio bien los dos datos
                if (link)
                {
                    bool p_result = await rt.syncProperty(user_name, syncSong.song_id, song_name);
                    if (!p_result)
                    {
                        Console.WriteLine("No se pudoo hacer la propiedad");
                    }
                }
                else
                {
                    Console.WriteLine("No se pudo unir cancion con version");
                }
                BlobManager bm = new BlobManager();
                bm.uploadSong(syncSong.song_id, song_directory);
                
            }
            return debug_message;
        }
        /// <summary>
        /// Carga una cancion en el blob
        /// </summary>
        /// <param name="pSongID">
        /// Id de la canción a subir
        /// </param>
        /// <param name="pSongPath">
        /// Dirección de la canción a subir
        /// </param>
        /// <returns>
        /// bool que es true si la canción se sube correctamente
        /// </returns>
        public bool uploadSong(int pSongID, string pSongPath)
        {
            BlobManager bm = new BlobManager();

            return bm.uploadSong(pSongID, pSongPath);

        }