StarryEyes.ViewModels.Timelines.Statuses.StatusViewModel.Delete C# (CSharp) Method

Delete() public method

public Delete ( ) : void
return void
        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));
                }
            });
        }