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

chimneyMpdServer_OnFind() private method

private chimneyMpdServer_OnFind ( object sender, ResponseEventArgs e ) : void
sender object
e Chimney.MPD.ResponseEventArgs
return void
        async void chimneyMpdServer_OnFind(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]);
                }
            }

            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.Contains(searchstring));
                        break;
                    case ("artist"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Artist.Contains(searchstring));
                        break;
                    case ("genre"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Genre.Contains(searchstring));
                        break;
                    case ("albumartist"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.AlbumArtist.Contains(searchstring));
                        break;
                    case ("file"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.RelativePath.Contains(searchstring));
                        break;
                    case ("Title"):
                        queryFiles = Dbconnection.Table<File>().Where(o => o.Title.Contains(searchstring));
                        break;
                    case("any"):
                        queryFiles = Dbconnection.Table<File>().Where(o => 
                            o.Title.Contains(searchstring) || 
                            o.Name.Contains(searchstring) ||
                            o.AlbumArtist.Contains(searchstring) ||
                            o.Genre.Contains(searchstring) ||
                            o.Artist.Contains(searchstring) ||
                            o.Album.Contains(searchstring));
                        break;
                    default:
                        break;
                }

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

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

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