private void _delegater_Downloading(object sender, DownloaderArgs e)
        {
            var response = messager.PostUpdaterState(new NAPUpdateModel {
                MarketId = e.MarketId, McpId = e.PatchId, McpState = MCPStatus.Downloading
            }).Result;

            Debug.WriteLine("downloading: " + response.Success.ToString() + " patchName: " + e.PatchName);
            //await response;
        }
        private void _delegater_Downloaded(object sender, DownloaderArgs e)
        {
            var response = messager.PostUpdaterState(new NAPUpdateModel {
                MarketId = e.MarketId, McpId = e.PatchId, McpState = MCPStatus.Downloaded
            }).Result;

            Debug.WriteLine("downloaded: " + response.Success.ToString() + " patchName: " + e.PatchName);
            var clientData = new NAPClientPatch();

            //add state to local db
            updaterClient.AddClientPatchData(new NAPClientPatch {
                MarketId = Convert.ToInt16(marketId), MarketSN = e.MarketId, PatchScriptId = e.PatchId, PatchState = "Downloaded", DownloadDate = DateTime.Now, PatchName = e.PatchName
            });
        }
示例#3
0
        public VKDownloader(DownloaderArgs args)
        {
            _args = args;

            _reporter = new ConsoleReporter<ConsoleState>(new ConsoleState(), state =>
            {
                var sb = ImmutableList<string>.Empty;

                sb = sb.Add(state.CurrentOperation);
                sb = sb.Add("");

                sb = sb.Add(state.CurrentOperationStatus);
                sb = sb.Add("");

                sb = state.Downloads.Aggregate(sb, (current, item) => current.Add($"[{item.PercentComplete}]: {item.Title}"));

                sb = sb.Add("");

                if (state.TotalBytes > 0)
                {
                    var totalMb = state.TotalBytes / (double)(1024 * 1024);
                    var avgSpeed = totalMb / _stopwatch.Elapsed.TotalSeconds;

                    sb = sb.Add($"So far, downloaded {state.ItemsDownloaded} songs");
                    sb = sb.Add($"{totalMb.ToString("0.00")} Mb - {avgSpeed.ToString("0.00")} Mb/s");

                    if (state.TotalSongsToDownload > 0)
                    {
                        var songAvgSize = totalMb / (state.ItemsDownloaded == 0 ? 1 : state.ItemsDownloaded);
                        var estSizeToDownload = songAvgSize*state.TotalSongsToDownload;
                        
                        var eta = TimeSpan.FromSeconds((estSizeToDownload - totalMb) / avgSpeed);
                        
                        sb = sb.Add($"Elapsed: {_stopwatch.Elapsed.ToString(@"hh\:mm\:ss")} ETA: {eta.ToString(@"hh\:mm\:ss")}");
                    }
                }

                return sb;
            });

            if (string.IsNullOrWhiteSpace(args.Folder)) throw new Exception("Folder should be specified! '-folder'");
        }
示例#4
0
 public WebTestDownloader(DownloaderArgs downloaderArgs) : base(downloaderArgs)
 {
 }