Files
YouTubeViewers/YouTubeViewers.WPF/Commands/DeleteYouTubeViewerCommand.cs

45 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YouTubeViewers.Domain.Models;
using YouTubeViewers.WPF.Stores;
using YouTubeViewers.WPF.ViewModels;
namespace YouTubeViewers.WPF.Commands
{
public class DeleteYouTubeViewerCommand : AsyncCommandBase
{
private readonly YouTubeViewersListingItemViewModel _youTubeViewersListingItemViewModel;
private readonly YouTubeViewersStore _youTubeViewersStore;
public DeleteYouTubeViewerCommand(
YouTubeViewersListingItemViewModel youTubeViewersListingItemViewModel,
YouTubeViewersStore youTubeViewersStore)
{
_youTubeViewersListingItemViewModel = youTubeViewersListingItemViewModel;
_youTubeViewersStore = youTubeViewersStore;
}
public override async Task ExecuteAsync(object? parameter)
{
_youTubeViewersListingItemViewModel.ErrorMessage = null;
_youTubeViewersListingItemViewModel.IsDeleting = true;
YouTubeViewer youTubeViewer = _youTubeViewersListingItemViewModel.YouTubeViewer;
try
{
await _youTubeViewersStore.Delete(youTubeViewer.Id);
}
catch (Exception)
{
_youTubeViewersListingItemViewModel.ErrorMessage = "Failed to delete YouTube viewer. Please try again later.";
}
finally
{
_youTubeViewersListingItemViewModel.IsDeleting = false;
}
}
}
}