public void Delete()
{
TwitterAccount info;
if (IsDirectMessage)
{
var ids = Status.Recipient == null
? new[] { Status.User.Id }
: new[] { Status.User.Id, Status.Recipient.Id };
info = ids
.Select(Setting.Accounts.Get).FirstOrDefault(_ => _ != null);
}
else
{
info = Setting.Accounts.Get(OriginalStatus.User.Id);
}
if (info == null) return;
Task.Run(async () =>
{
var dreq = new DeletionRequest(OriginalStatus);
try
{
var result = await RequestQueue.EnqueueAsync(info, dreq).ConfigureAwait(false);
StatusInbox.EnqueueRemoval(result.Id);
}
catch (Exception ex)
{
BackstageModel.RegisterEvent(new OperationFailedEvent(
MainAreaTimelineResources.MsgTweetDeleteFailed, ex));
}
});
}