Beispiel #1
0
        /// <summary>
        /// 设置标注
        /// </summary>
        /// <param name="maskName"></param>
        /// <param name="resource"></param>
        public void SetTorrentMask(string maskName, params IResourceInfo[] resource)
        {
            if (resource == null)
            {
                return;
            }

            var mask = string.IsNullOrEmpty(maskName) ? null : AppContext.Instance.Options.HashMarks.GetValue(maskName);

            if (mask == null && !string.IsNullOrEmpty(maskName))
            {
                return;
            }

            PrepareFullDetail(resource);

            foreach (var res in resource.Where(s => s.IsHashLoaded))
            {
                var ea = new TorrentMarkEventArgs(res, maskName, mask);
                if (!string.IsNullOrEmpty(maskName))
                {
                    AppContext.Instance.HashMarkCollection.AddOrUpdate(res.Hash, maskName);
                }
                else if (AppContext.Instance.HashMarkCollection.ContainsKey(res.Hash))
                {
                    AppContext.Instance.HashMarkCollection.Remove(res.Hash);
                }
                AppContext.Instance.OnTorrentMarked(resource, ea);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 引发 <see cref="TorrentMarked" /> 事件
        /// </summary>
        /// <param name="sender">引发此事件的源对象</param>
        /// <param name="ea">包含此事件的参数</param>
        public void OnTorrentMarked(object sender, TorrentMarkEventArgs ea)
        {
            var handler = TorrentMarked;

            if (handler != null)
            {
                handler(sender, ea);
            }
        }
Beispiel #3
0
        void TorrentOperation_TorrentMarked(object sender, TorrentMarkEventArgs e)
        {
            var info = e.Torrent;
            var item = _itemCache.GetValue(info.Hash);

            if (item != null)
            {
                item.ForeColor        = e.Mark == null ? lv.ForeColor : e.Mark.Color;
                item.BackColor        = e.Mark == null ? lv.BackColor : e.Mark.BackColor;
                item.SubItems[3].Text = e.MaskName;
            }
        }
Beispiel #4
0
        void TorrentOperation_TorrentMarked(object sender, TorrentMarkEventArgs e)
        {
            var info = e.Torrent;

            GetItemsByHash(info.Hash)?.ApplyMark(e.MaskName, e.Mark);
        }