Exemplo n.º 1
0
        public void DownloadFile(TKey key, string[] downloadLinks, string file)
        {
            DownloadFile_v1 <TKey> downloadFile = new DownloadFile_v1 <TKey> {
                key = key, downloadLinks = downloadLinks, requestTime = DateTime.Now, file = file, downloadId = 0, state = DownloadState.WaitToDownload
            };

            downloadFile.id = _mongoQueueDownloadFileManager.GetNewId();
            _mongoQueueDownloadFileManager.Save(downloadFile.id, downloadFile);
        }
Exemplo n.º 2
0
        public static bool Save(MongoCollectionManager_v1 <DownloadPostKey_v1, DownloadedFile_v2 <DownloadPostKey_v1> > mongoDownloadedFileManager, DownloadedFile_v2 <DownloadPostKey_v1> downloadedFile)
        {
            bool saved = false;

            if (mongoDownloadedFileManager.Load(downloadedFile.Key) == null)
            {
                downloadedFile.Id = mongoDownloadedFileManager.GetNewId();
                mongoDownloadedFileManager.Save(downloadedFile.Id, downloadedFile);
                saved = true;
            }
            //Trace.WriteLine("{0} : key {1}, file \"{2}\"", saved ? "saved    " : "not saved", downloadedFile.Key, downloadedFile.UncompressFiles != null ? downloadedFile.UncompressFiles.FirstOrDefault() : "null");
            Trace.WriteLine("{0} : key {1}, file \"{2}\"", saved ? "saved    " : "not saved", downloadedFile.Key,
                            downloadedFile.DownloadItemLinks != null ? downloadedFile.DownloadItemLinks.FirstOrDefault().ServerLinks.FirstOrDefault().FilePartLinks.FirstOrDefault().DownloadedFile : "null");
            return(true);
        }
Exemplo n.º 3
0
        private void EndDownloadFile(DownloadFile_v1 <TKey> downloadFile)
        {
            try
            {
                DownloadedFile_v1 <TKey> downloadedFile = new DownloadedFile_v1 <TKey>
                {
                    key               = downloadFile.key,
                    downloadLinks     = downloadFile.downloadLinks,
                    downloadLink      = downloadFile.downloadLink,
                    file              = downloadFile.file,
                    state             = downloadFile.state,
                    requestTime       = downloadFile.requestTime,
                    startDownloadTime = downloadFile.startDownloadTime,
                    endDownloadTime   = DateTime.Now,
                    downloadDuration  = DateTime.Now - downloadFile.startDownloadTime
                };
                string downloadedPath    = _downloadClient.GetDownloadLocalFileById(downloadFile.downloadId);
                string downloadDirectory = zPath.GetDirectoryName(downloadFile.file);
                //if (_trace)
                //{
                //    pb.Trace.WriteLine("ManageEndDownloadFiles()                      : downloadFile.file : \"{0}\"", downloadFile.file);
                //    pb.Trace.WriteLine("ManageEndDownloadFiles()                      : _downloadClient.GetDownloadLocalFileById() : \"{0}\"", downloadedPath);
                //}
                downloadedFile.downloadedFile = zpath.PathSetDirectory(downloadedPath, downloadDirectory);
                downloadedFile.id             = _mongoDownloadedFileManager.GetNewId();

                _mongoDownloadedFileManager.Save(downloadedFile.id, downloadedFile);
                _mongoQueueDownloadFileManager.Remove(downloadFile.id);
                _downloadClient.RemoveDownloadById(downloadFile.downloadId);

                // _uncompressFile
                if (downloadFile.state == DownloadState.DownloadCompleted && _uncompressManager != null && CompressManager.IsCompressFile(downloadedPath))
                {
                    TaskManager.AddTask(new Task
                    {
                        name = "Uncompress download file",
                        task = () =>
                        {
                            UncompressFile(downloadedPath, downloadedFile, downloadDirectory);
                            _mongoDownloadedFileManager.Save(downloadedFile.id, downloadedFile);
                        }
                    });
                    if (_onDownloaded != null)
                    {
                        TaskManager.AddTask(new Task {
                            name = "onDownloaded", task = () => _onDownloaded(downloadedFile)
                        });
                    }
                }
                else if (_onDownloaded != null)
                {
                    _onDownloaded(downloadedFile);
                }

                DownloadFile_v1 <TKey> downloadFile2;
                if (!_downloadFiles.TryRemove(downloadFile.id, out downloadFile2))
                {
                    pb.Trace.WriteLine("error unable to remove downloadFile with id {0} from ConcurrentDictionary _downloadFiles (DownloadManager<TKey>.ManageEndDownloadFiles())", downloadFile.id);
                }
            }
            catch (Exception exception)
            {
                pb.Trace.WriteLine("error in DownloadManager_v1.EndDownloadFile() : {0}", exception.Message);
                pb.Trace.WriteLine(exception.StackTrace);
            }
        }