Chimney.Shared.UserControls.ChimneyServerUserControl.chimneyMpdServer_OnPlaylistAdd C# (CSharp) Method

chimneyMpdServer_OnPlaylistAdd() private method

private chimneyMpdServer_OnPlaylistAdd ( object sender, ResponseEventArgs e ) : void
sender object
e Chimney.MPD.ResponseEventArgs
return void
        async void chimneyMpdServer_OnPlaylistAdd(object sender, ResponseEventArgs e)
        {
            bool suc = false;

            string playlistName = string.Empty;
            string uri = string.Empty;

            bool addasuri = false;

            if (e.arguments.Count > 1)
            {
                playlistName = e.arguments[0];
                uri = e.arguments[1];
            }

            var playlistToAddTo = await Dbconnection.FindAsync<Playlist>(o => o.Name == playlistName);

            if (playlistToAddTo == null)
            {
                Playlist newStoredPlaylist = new Playlist()
                {
                    Name = playlistName,
                    LastModified = DateTime.Now.ToString("s")
                };

                await Dbconnection.InsertAsync(newStoredPlaylist);

                playlistToAddTo = await Dbconnection.FindAsync<Playlist>(o => o.Name == playlistName);
            }

            var fileToAdd = await Dbconnection.FindAsync<File>(o => o.RelativePath == uri);

            if (fileToAdd == null) addasuri = true;

            if(playlistToAddTo != null)
            {
                PlaylistFile newPlaylistFile = new PlaylistFile() { 
                    FileId = (addasuri) ? -1 : fileToAdd.FileId,
                    IsUri = addasuri,
                    Uri = (addasuri) ? uri : fileToAdd.FilePath,
                    Position = await Dbconnection.ExecuteScalarAsync<int>("SELECT COUNT(*) FROM PlaylistFiles WHERE PlaylistId = " + playlistToAddTo.PlaylistId),
                    PlaylistId = playlistToAddTo.PlaylistId
                };

                await Dbconnection.InsertAsync(newPlaylistFile);

                playlistToAddTo.LastModified = DateTime.Now.ToString("s");

                await Dbconnection.UpdateAsync(playlistToAddTo);

            }

            chimneyMpdServer.AppendResponse(string.Empty, e.id, e.position);

            if (OnIdleEvent != null) OnIdleEvent(this, new IdleEventArgs("stored_playlist"));
        }
ChimneyServerUserControl