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()));
            }
        }
Exemple #2
0
 private void OnImportStarted(ImportEventArgs e)
 {
     ImportStarted?.Invoke(this, e);
 }
 protected virtual void OnImportStarted(object sender, EventArgs e) => ImportStarted?.Invoke(sender, e);
Exemple #4
0
 void Given(ImportStarted e)
 {
     Importing        = true;
     WhenImportedLast = e.When;
 }
Exemple #5
0
 void Given(ImportStarted e) =>
 _importing = true;
 public void OnImportStarted()
 {
     ImportStarted?.Invoke(this, new EventArgs());
 }