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

chimneyMpdServer_OnSearch() private method

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

            List<string> searchstrings = new List<string>();
            string searchtype = null;

            if (e.arguments.Count > 1)
            {
                searchtype = e.arguments[0].ToLower();

                for (int i = 1; i < e.arguments.Count; i++ )
                {
                    searchstrings.Add(e.arguments[i].ToLower());
                }
            }

            string response = string.Empty;

            foreach(string searchstring in searchstrings)
            {
                AsyncTableQuery<File> queryFiles = null;

                switch(searchtype)
                {
                    case ("album"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Album.ToLower().Contains(searchstring));
                        break;
                    case ("artist"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Artist.ToLower().Contains(searchstring));
                        break;
                    case ("genre"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Genre.ToLower().Contains(searchstring));
                        break;
                    case ("albumartist"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.AlbumArtist.ToLower().Contains(searchstring));
                        break;
                    case ("file"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Name.ToLower().Contains(searchstring));
                        break;
                    case ("any"):
                        queryFiles = Dbconnection.Table<File>().Where(o =>
                            o.Title.ToLower().Contains(searchstring) ||
                            o.Name.ToLower().Contains(searchstring) ||
                            o.AlbumArtist.ToLower().Contains(searchstring) ||
                            o.Genre.ToLower().Contains(searchstring) ||
                            o.Artist.ToLower().Contains(searchstring) ||
                            o.Album.ToLower().Contains(searchstring));
                        break;
                    default:
                        break;
                }

                if (queryFiles != null)
                {
                    var result = await queryFiles.ToListAsync();

                    foreach (File file in result)
                    {
                        response += file.ToResponseString();
                    }
                }
            }

            if (suc) chimneyMpdServer.AppendResponse(response, e.id, e.position);
            else
            {
                string errorfile = (e.arguments.Count > 0) ? errorfile = e.arguments.First<string>():  string.Empty;
                chimneyMpdServer.ErrorResponse(MPDKeyWords.Response.ACK + " [50@0] {listall} could not find path:" + " \"" + errorfile + "\"", e.id, e.position);
            }
        }
ChimneyServerUserControl