Пример #1
0
        public virtual void BeginPurge(int rootId)
        {
            workQueue.Enqueue(new Work
            {
                Task = () =>
                {
                    var item = persister.Get(rootId);
                    if (item == null)
                    {
                        return;
                    }

                    string title = item.Title;
                    Status       = new AsyncPurgeStatus {
                        IsRunning = true, Progress = new PurgingStatus {
                            Deleted = 0, Remaining = 1
                        }, Title = title
                    };

                    using (this.security.Disable())
                    {
                        trash.Purge(item, s => { Status = new AsyncPurgeStatus {
                                                     IsRunning = true, Progress = s, Title = title
                                                 }; });
                    }
                    Status = null;
                }
            });
            BeginWorking();
        }