public async Task <T> GetTracks <T>(int ID, TrackSearchRequest search)
        {
            try
            {
                var url = $"{APIUrl}/{_route}/{ID}/Tracks";

                if (search != null)
                {
                    url += "?";
                    url += await search.ToQueryString();
                }

                return(await url.WithBasicAuth(Username, Password).GetJsonAsync <T>());
            }
            catch (FlurlHttpException ex)
            {
                var errors = await ex.GetResponseJsonAsync <Dictionary <string, string[]> >();

                var stringBuilder = new StringBuilder();
                foreach (var error in errors)
                {
                    stringBuilder.AppendLine($"{error.Key}, ${string.Join(",", error.Value)}");
                }

                await Application.Current.MainPage.DisplayAlert("Error", stringBuilder.ToString(), "OK");

                return(default(T));
            }
        }
예제 #2
0
        public async Task <T> GetTracks <T>(int ID, TrackSearchRequest search)
        {
            try
            {
                var url = $"{Properties.Settings.Default.ApiUrl}/{_route}/{ID}/Tracks";

                if (search != null)
                {
                    url += "?";
                    url += await search.ToQueryString();
                }

                return(await url.WithBasicAuth(Username, Password).GetJsonAsync <T>());
            }
            catch (FlurlHttpException ex)
            {
                var errors = await ex.GetResponseJsonAsync <Dictionary <string, string[]> >();

                var stringBuilder = new StringBuilder();
                foreach (var error in errors)
                {
                    stringBuilder.AppendLine($"{error.Key}, ${string.Join(",", error.Value)}");
                }

                MessageBox.Show(stringBuilder.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(default(T));
            }
        }