Example #1
0
        private async void RemoveTrackFromMyMusic(AudioVk track)
        {
            if (!track.IsAddedByCurrentUser)
            {
                return;
            }

            try
            {
                //TODO captcha

                var result = await _tracksService.RemoveTrack(track);

                if (result)
                {
                    Messenger.Default.Send(new MessageMyMusicChanged()
                    {
                        RemovedTracks = new List <AudioVk> {
                            track
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Unable to remove track");
            }
        }
Example #2
0
        /// <summary>
        /// Remove track from my music
        /// </summary>
        /// <param name="audio"></param>
        /// <returns></returns>
        public async Task <bool> RemoveTrack(AudioVk track)
        {
            var result = await _vk.Audio.Delete(long.Parse(track.Id), long.Parse(track.OwnerId));

            if (result)
            {
                track.IsAddedByCurrentUser = false;
            }

            return(result);
        }
Example #3
0
        private List <IAudio> ProcessTracks(List <VkAudio> tracks)
        {
            var result = new List <IAudio>();

            foreach (var vkTrack in tracks)
            {
                var track = new AudioVk(vkTrack);
                track.IsAddedByCurrentUser = track.OwnerId == _vk.AccessToken?.UserId.ToString();
                result.Add(track);
            }

            return(result);
        }
        public async Task SetMusicStatus(AudioVk audio)
        {
            long aid = 0;
            long oid = 0;

            if (audio != null)
            {
                aid = long.Parse(audio.Id);
                oid = long.Parse(audio.OwnerId);
            }

            var result = await _vk.Audio.SetBroadcast(aid, oid);
        }
Example #5
0
        /// <summary>
        /// Add track to my music
        /// </summary>
        public async Task <bool> AddTrack(AudioVk track)
        {
            var newId = await _vk.Audio.Add(long.Parse(track.Id), long.Parse(track.OwnerId));

            if (newId > 0)
            {
                track.Id      = newId.ToString();
                track.OwnerId = _vk.AccessToken?.UserId.ToString();
                track.IsAddedByCurrentUser = true;

                return(true);
            }

            return(false);
        }
Example #6
0
        private async void AddTrackToMyMusic(AudioVk track)
        {
            if (track.IsAddedByCurrentUser)
            {
                return;
            }

            try
            {
                //TODO captcha

                if (track.Id == null || track.OwnerId == null)
                {
                    //TODO resolve
                    throw new NotImplementedException();
                    //var resolvedTrack = await ServiceLocator.MusicResolverService.ResolveTrack(audio.Title, audio.Artist, audio.Duration);
                    //audio.Id = resolvedTrack.Id;
                    //audio.OwnerId = resolvedTrack.OwnerId;
                }

                var result = await _tracksService.AddTrack(track); //ServiceLocator.VkDataService.AddAudio(audio);

                if (result)
                {
                    Messenger.Default.Send(new MessageMyMusicChanged()
                    {
                        AddedTracks = new List <AudioVk> {
                            track
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "Unable to add track");
            }
        }
Example #7
0
 /// <summary>
 /// Edit track info
 /// </summary>
 /// <returns>Returns lyrics id or 0</returns>
 public async Task <long> EditTrack(AudioVk track, string title, string artist, string lyrics = null)
 {
     return(await _vk.Audio.Edit(ownerId : long.Parse(track.OwnerId), audioId : long.Parse(track.Id), artist : artist, title : title, text : lyrics));
 }