コード例 #1
0
        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()));
            }
        }
コード例 #2
0
 private void OnImportStarted(ImportEventArgs e)
 {
     ImportStarted?.Invoke(this, e);
 }
コード例 #3
0
 protected virtual void OnImportStarted(object sender, EventArgs e) => ImportStarted?.Invoke(sender, e);
コード例 #4
0
ファイル: StatusQuery.cs プロジェクト: jmptrader/BlazorUI
 void Given(ImportStarted e)
 {
     Importing        = true;
     WhenImportedLast = e.When;
 }
コード例 #5
0
ファイル: Import.cs プロジェクト: jmptrader/BlazorUI
 void Given(ImportStarted e) =>
 _importing = true;
コード例 #6
0
 public void OnImportStarted()
 {
     ImportStarted?.Invoke(this, new EventArgs());
 }