Example #1
0
        /// <summary>
        /// 是否存在于下载列表中
        /// </summary>
        /// <param name="downloading"></param>
        /// <returns></returns>
        private async Task <bool> IsExist(DownloadingItem downloading)
        {
            bool isExist = downloadingList.Contains(downloading);

            if (isExist)
            {
                return(true);
            }
            else
            {
                // 先恢复为waiting状态,暂停状态下Remove会导致文件重新下载,原因暂不清楚
                await AriaClient.UnpauseAsync(downloading.Downloading.Gid);

                // 移除下载项
                var ariaRemove = await AriaClient.RemoveAsync(downloading.Downloading.Gid);

                if (ariaRemove == null || ariaRemove.Result == downloading.Downloading.Gid)
                {
                    // 从内存中删除下载项
                    await AriaClient.RemoveDownloadResultAsync(downloading.Downloading.Gid);
                }

                return(false);
            }
        }