private static async void image_ImageOpened(object sender, RoutedEventArgs e)
{
    var image = sender as BitmapImage;
    if (image == null) return;
    string fileName = GetFileNameFromPath(image.UriSource.AbsolutePath);
    var writableBitmap = new WriteableBitmap(image);
    var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(AppConstants.LOCALFOLDERNAME_BACKGROUND, CreationCollisionOption.OpenIfExists);
    var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
    using (var stream = await file.OpenStreamForWriteAsync())
        Extensions.SaveJpeg(writableBitmap, stream, image.PixelWidth, image.PixelHeight, 0, 100);
}
private static string GetFileNameFromPath(string path)
{
    int lastSlashIndex = path.LastIndexOf('/');
    return HttpUtility.UrlDecode(path.Substring(lastSlashIndex + 1, path.Length - lastSlashIndex - 1));
} private void LongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            LongListSelector selector = sender as LongListSelector;
            // verifying our sender is actually a LongListSelector
            if (selector == null)
                return;
            SoundData data = selector.SelectedItem as SoundData;
            
            // verifying our sender is actually SoundData
            if (data == null)
                return;
            if (data.IsDownloaded)
            {
                if (audioStream != null)
                {
                    audioStream.Close();
                    
                }
                audioStream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile(data.SavePath, FileMode.Open);
                // Apparently MediaElement doesn't like isostore:/
                AudioPlayer.SetSource(audioStream);
                AudioPlayer.Play();
                
            }
            else
            {
              
                WebClient client = new WebClient();
                client.OpenReadCompleted += (senderClient, args) =>
                    {
                        using (IsolatedStorageFileStream fileStream = IsolatedStorageFile.GetUserStoreForApplication().CreateFile(data.SavePath))
                        {
                            args.Result.Seek(0, SeekOrigin.Begin);
                            args.Result.CopyTo(fileStream);
                        }
                    };
                client.OpenReadAsync(new Uri(data.FilePath));
            }
            selector.SelectedItem = null;
