Example #1
0
        private APIResponse GetSearch2(APIRequest request)
        {
            request.Params.TryGetValue("song", out string song);
            request.Params.TryGetValue("album", out string album);
            request.Params.TryGetValue("artist", out string artist);

            if (string.IsNullOrEmpty(song) && string.IsNullOrEmpty(album) && string.IsNullOrEmpty(artist))
            {
                throw new ParameterMissingException();
            }

            if (!request.Params.ContainsKey("list"))
            {
                throw new ParameterMissingException("list");
            }

            Dictionary <string, object> responseData = new Dictionary <string, object>();

            string[] listOptions = APIUtils.SplitCSVList(request.Params["list"]);

            //run searches
            if (listOptions.Contains("songs"))
            {
                responseData.Add("songs", MediaDatabase.FindSongsByParameters(song, album, artist));
            }
            if (listOptions.Contains("albums"))
            {
                responseData.Add("albums", MediaDatabase.FindAlbumsByParameters(song, album, artist));
            }
            if (listOptions.Contains("artists"))
            {
                responseData.Add("artists", MediaDatabase.FindArtistsByParameters(song, album, artist));
            }

            return(new APIResponse(JsonConvert.SerializeObject(new { data = responseData })));
        }