コード例 #1
0
        /// <summary>
        /// Obtiene la descripción de un artista específico.
        /// </summary>
        /// <param name="artist">Nombre del artista.</param>
        /// <returns>Una descripción (si existe) del artista buscado.</returns>
        public async Task <MArtist> GetArtistInfo(string artist)
        {
            MArtist result = null;

            string response = await WebApiService.GetAsync(new Uri(string.Format(Settings.Servers.ArtistInfoUrl, artist), UriKind.Absolute));

            if (!string.IsNullOrEmpty(response))
            {
                try
                {
                    if (!response.Contains("error"))
                    {
                        result = new MArtist();
                        var artistInfo = JObject.Parse(response).SelectToken("artist").ToString();
                        result = WebApiService.Deserialize <MArtist>(artistInfo);

                        result.Image = result.Images[3].Url; //Obtenemos la imagen más grande
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }

            return(result);
        }
コード例 #2
0
        public static ArtistDetailFragment NewInstance(MArtist selectedArtist)
        {
            var detailsFrag = new ArtistDetailFragment {
                Arguments = new Bundle()
            };

            detailsFrag.Arguments.PutString("current_artist", JsonConvert.SerializeObject(selectedArtist));
            return(detailsFrag);
        }
コード例 #3
0
        /// <summary>
        /// Se ejecuta al inicio para obtener los parámetros enviados desde ArtistViewModel.
        /// </summary>
        /// <param name="artist">Artista seleccionado.</param>
        public async void Init(MArtist artist)
        {
            if (artist == null || string.IsNullOrEmpty(artist.Name))
            {
                return;
            }

            this.ArtistParam = artist;
            await LoadArtistDetail();
        }
コード例 #4
0
        /// <summary>
        /// Obtiene información del artista seleccionado en la pantalla anterior.
        /// </summary>
        /// <returns></returns>
        public async Task LoadArtistDetail()
        {
            IsLoading = true;
            var data = await DataService.GetArtistInfo(ArtistParam.Name);

            if (data != null)
            {
                Artist = new MArtist();
                Artist = data;
            }
            else
            {
                ErrorMsg          = "No se encontraron resultados para ésta búsqueda.";
                IsErrorMsgVisible = true;
            }

            IsLoading = false;
        }
コード例 #5
0
        public static bool Remove(MArtist item)
        {
            var itemToRemove = LikedArtists.Where(i => i.ArtistID == item.ArtistID).FirstOrDefault();

            return(LikedArtists.Remove(itemToRemove));
        }
コード例 #6
0
 public ArtistDetailVM(MArtist artist)
 {
     Artist = artist;
 }
コード例 #7
0
 public ArtistDetailPage(MArtist artist)
 {
     InitializeComponent();
     BindingContext = model = new ArtistDetailVM(artist);
 }