private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) { if (haveStater) { Stater.MaxPosition += e.BytesReceived > 0 ? e.BytesReceived : 2; Stater.Inc(e.BytesReceived); } }
protected void GenerateLogs(Dictionary <string, string> data, string user, Direction dir, GeneratorSetting setting, Dictionary <Core.Visualizers.Types, Logger.Appender> loggers) { if (data == null || loggers == null) { return; } if (haveStater) { Stater.MaxPosition = setting.MaxResults < 100 ? setting.MaxResults : 100; } var curPos = 0; var arr = data.Values.ToArray(); foreach (var key in loggers.Keys) { var logger = loggers[key]; var logEvent = Core.Visualizers.TypeLogEvent[key] .GetConstructor(Type.EmptyTypes) .Invoke(Type.EmptyTypes) as LogEvent; logEvent.Date = DateTime.Now; logEvent.Action = "A"; foreach (var item in arr) { if (haveStater && curPos++ % 100 == 0) { Stater.SetState("Generate...", 0); } switch (dir) { case Direction.visible: logEvent.User = user; logEvent.FileName = item; break; case Direction.incoming: logEvent.User = item; logEvent.FileName = user; break; } logger.Append(logEvent); if (haveStater) { Stater.Inc(); } if (curPos >= setting.MaxResults) { break; } } } }
protected override void doGenerate(GeneratorSetting setting, string word, int depth) { if (string.IsNullOrWhiteSpace(word) || setting == null) { return; } curWord = word; var acts = Service.Activities.Search(word); if (setting.UseDateRange) { setting.MaxResults = 20; } var step = setting.MaxResults / (double)20; string nextPage = string.Empty; if (users == null) { users = new Dictionary <string, bool>(); } users[word] = true; while (step != 0) { var nextResults = 20; if (step-- < 1) { nextResults = (int)((step + 1) * 20); step = 0; } step = step == 0 && setting.UseDateRange ? 1 : step; acts.MaxResults = nextResults; acts.PageToken = nextPage; acts.OrderBy = Google.Apis.Plus.v1.ActivitiesResource.OrderBy.Recent; if (haveStater) { Stater.MaxPosition = nextResults; Stater.SetState("Load feeds ..."); } Dictionary <Activity, ActivityCont> dicdate = null; try { var feed = acts.Fetch(); if (dicdate == null) { dicdate = new Dictionary <Activity, ActivityCont>(); } dicdate.Clear(); nextPage = null; if (feed.Error == null) { nextPage = feed.NextPageToken; if (string.IsNullOrWhiteSpace(nextPage)) { step = 0; Stater.Position = Stater.MaxPosition; } if (haveStater) { Stater.MaxPosition = feed.Items.Count; Stater.SetState("Parsing ..."); } foreach (var item in feed.Items) { if (setting.UseDateRange && !InRange(setting.DateFrom, setting.DateTo, item.Published)) { if (IsOutLeft(setting.DateFrom, item.Published)) { step = 0; break; } continue; } var ditem = dicdate[item] = new ActivityCont(); if (haveStater) { Stater.Inc(); } } GenerateLogs(dicdate, setting, loggers); } else { WriteLog(feed.Error.ToString(), this); } } catch (Exception e) { WriteLog(e, this); e.ShowError(); step = 0; } } }