async Task When(ImportStarted e, IManifestFile file) { try { var manifest = await file.Download(); var added = new Many <Manifest.Dealer>(); var updated = new Many <Manifest.Dealer>(); var remainingIds = _dealersById.Keys.ToHashSet(); foreach (var downloaded in manifest.Dealers) { remainingIds.Remove(downloaded.Id); if (!_dealersById.TryGetValue(downloaded.Id, out var existing)) { added.Write.Add(downloaded); } else { if (downloaded.Name != existing.Name || downloaded.Region != existing.Region || downloaded.Hostname != existing.Hostname || downloaded.ManifestLink != existing.ManifestLink) { updated.Write.Add(downloaded); } } } Then(new ManifestDownloaded(manifest.AssetsLink, added, updated, remainingIds.ToMany())); } catch (Exception error) { Then(new ManifestDownloadFailed(error.ToString())); } }
private void OnImportStarted(ImportEventArgs e) { ImportStarted?.Invoke(this, e); }
protected virtual void OnImportStarted(object sender, EventArgs e) => ImportStarted?.Invoke(sender, e);
void Given(ImportStarted e) { Importing = true; WhenImportedLast = e.When; }
void Given(ImportStarted e) => _importing = true;
public void OnImportStarted() { ImportStarted?.Invoke(this, new EventArgs()); }