Make feed read on error dialog async and preserve selection

This commit is contained in:
2015-11-16 11:05:55 -05:00
parent 040147cb4a
commit 9a73709c7f
2 changed files with 18 additions and 3 deletions

View File

@@ -105,18 +105,27 @@ namespace FeedCenter
Close();
}
private void HandleRefreshCurrentButtonClick(object sender, RoutedEventArgs e)
private async void HandleRefreshCurrentButtonClick(object sender, RoutedEventArgs e)
{
IsEnabled = false;
Mouse.OverrideCursor = Cursors.Wait;
var feed = (Feed) FeedDataGrid.SelectedItem;
feed.Read(_database, true);
await feed.ReadAsync(_database, true);
var selectedIndex = FeedDataGrid.SelectedIndex;
_collectionViewSource.View.Refresh();
if (selectedIndex >= FeedDataGrid.Items.Count)
FeedDataGrid.SelectedIndex = FeedDataGrid.Items.Count - 1;
else
FeedDataGrid.SelectedIndex = selectedIndex;
SetFeedButtonStates();
Mouse.OverrideCursor = null;
IsEnabled = true;
}
}
}

View File

@@ -8,6 +8,7 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace FeedCenter
{
@@ -93,6 +94,11 @@ namespace FeedCenter
return result;
}
public async Task<FeedReadResult> ReadAsync(FeedCenterEntities database, bool forceRead = false)
{
return await Task.Run(() => Read(database, forceRead));
}
private Tuple<FeedReadResult, string> RetrieveFeed()
{
try
@@ -320,7 +326,7 @@ namespace FeedCenter
var lastReadResult = LastReadResult;
// Build the name of the resource using the enum name and the value
var resourceName = $"{typeof (FeedReadResult).Name}_{lastReadResult}";
var resourceName = $"{typeof(FeedReadResult).Name}_{lastReadResult}";
// Try to get the value from the resources
var resourceValue = Properties.Resources.ResourceManager.GetString(resourceName);