private async void AddButtonClick(object sender, RoutedEventArgs e)
        {
            var album = AlbumsComboBox.SelectedValue as VkAudioAlbum;

            if (album == null && !string.IsNullOrEmpty(AlbumsComboBox.Text))
            {
                album = await AddNewAlbum(AlbumsComboBox.Text);
            }

            if (album == null)
            {
                return;
            }

            if (!_track.IsAddedByCurrentUser)
            {
                var result = await DataService.AddAudio(_track);

                if (!result)
                {
                    LoggingService.Log("Unable to add audio " + _track.Id + " to current user.");
                    return;
                }
            }

            try
            {
                var result = await ViewModelLocator.Vkontakte.Audio.MoveToAlbum(album.Id,
                                                                                new List <long>() { long.Parse(_track.Id) });

                if (!result)
                {
                    LoggingService.Log("Unable to move audio " + _track.Id + " to album " + album.Id + ".");
                    return;
                }
            }
            catch (Exception ex)
            {
                LoggingService.Log(ex);
            }

            Close();
        }
        private async Task LikeDislikeAudio(VkAudio audio, bool captchaNeeded = false, string captchaSid = null, string captchaImg = null)
        {
            if (audio == null)
            {
                return;
            }

            IsWorking = true;

            string captchaKey = null;

            if (captchaNeeded)
            {
                var flyout = new FlyoutControl();
                flyout.FlyoutContent = new CaptchaRequestView(captchaSid, captchaImg);
                var result = await flyout.ShowAsync();

                if (string.IsNullOrEmpty((string)result))
                {
                    IsWorking = false;
                    return;
                }
                else
                {
                    captchaKey = (string)result;
                }
            }

            try
            {
                bool result;

                if (!audio.IsAddedByCurrentUser)
                {
                    result = await DataService.RemoveAudio(audio);
                }
                else
                {
                    result = await DataService.AddAudio(audio, captchaSid, captchaKey);
                }

                if (result)
                {
                    //нужно, чтобы обновить список треков пользователя, если он открыт в данный момент
                    MessengerInstance.Send(new UserTracksChangedMessage());
                }
                else
                {
                    audio.IsAddedByCurrentUser = !audio.IsAddedByCurrentUser;
                    LoggingService.Log("Can't add/remove audio " + audio.Id + " owner: " + audio.OwnerId + ".");
                }
            }
            catch (VkCaptchaNeededException ex)
            {
                LikeDislikeAudio(audio, true, ex.CaptchaSid, ex.CaptchaImg);
            }
            catch (Exception ex)
            {
                audio.IsAddedByCurrentUser = !audio.IsAddedByCurrentUser;
                LoggingService.Log(ex);
            }

            IsWorking = false;
        }