private async Task DeletePlaylistsAsync(IList <Playlist> playlists)
        {
            this.IsLoadingPlaylists = true;
            DeletePlaylistResult result = await this.collectionService.DeletePlaylistsAsync(playlists);

            await this.FillListsAsync();

            if (result == DeletePlaylistResult.Error)
            {
                string message = ResourceUtils.GetStringResource("Language_Error_Deleting_Playlists");

                if (playlists.Count == 1)
                {
                    message = ResourceUtils.GetStringResource("Language_Error_Deleting_Playlist").Replace("%playlistname%", "\"" + playlists[0].PlaylistName + "\"");
                }

                this.dialogService.ShowNotification(
                    0xe711,
                    16,
                    ResourceUtils.GetStringResource("Language_Error"),
                    message,
                    ResourceUtils.GetStringResource("Language_Ok"),
                    true,
                    ResourceUtils.GetStringResource("Language_Log_File"));
            }
        }
示例#2
0
        public async Task <DeletePlaylistResult> DeletePlaylistsAsync(IList <Playlist> playlists)
        {
            DeletePlaylistResult result = await this.playlistRepository.DeletePlaylistsAsync(playlists);

            if (result == DeletePlaylistResult.Success)
            {
                this.PlaylistsChanged(this, new EventArgs());
            }

            return(result);
        }
示例#3
0
        public async Task <DeletePlaylistResult> DeletePlaylistAsync(long discordUserId, string playlistName)
        {
            AsyncDataReader dr = new AsyncDataReader("PLAYLIST_DeletePlaylist", _credentials.DbConnectionString);

            dr.AddParameter("@DiscordUserId", discordUserId);
            dr.AddParameter("@PlaylistName", playlistName);

            DeletePlaylistResult result = (DeletePlaylistResult)await dr.ExecuteScalarAsync();

            return(result);
        }
示例#4
0
        public async Task <DeletePlaylistResult> DeletePlaylistsAsync(IList <Playlist> playlists)
        {
            DeletePlaylistResult result = DeletePlaylistResult.Success;

            await Task.Run(() =>
            {
                try
                {
                    using (var conn = this.factory.GetConnection())
                    {
                        foreach (Playlist pl in playlists)
                        {
                            string trimmedPlaylistName = pl.PlaylistName.Trim();

                            // Get the Playlist in the database
                            Playlist dbPlaylist = conn.Query <Playlist>("SELECT * FROM Playlist WHERE TRIM(PlaylistName)=?", trimmedPlaylistName).FirstOrDefault();


                            if (dbPlaylist != null)
                            {
                                // Get the PlaylistEntries which contain the PlaylistID of the Playlist to delete
                                List <PlaylistEntry> playlistEntries = conn.Table <PlaylistEntry>().Where((p) => p.PlaylistID == dbPlaylist.PlaylistID).Select((p) => p).ToList();

                                conn.Delete(dbPlaylist);

                                foreach (var entry in playlistEntries)
                                {
                                    conn.Delete(entry);
                                }

                                LogClient.Instance.Logger.Info("Deleted the Playlist {0}", trimmedPlaylistName);
                            }
                            else
                            {
                                LogClient.Instance.Logger.Error("The playlist {0} could not be deleted because it was not found in the database.", trimmedPlaylistName);
                                result = DeletePlaylistResult.Error;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogClient.Instance.Logger.Error("Could not connect to the database. Exception: {0}", ex.Message);
                }
            });

            return(result);
        }