Esempio n. 1
0
 private static void FillProcessingEntry(FixtureProcessingEntry entry, FeedUpdateOverview update)
 {
     entry.Epoch = update.Epoch.ToString();
     entry.EpochChangeReasons = update.LastEpochChangeReason;
     entry.Exception          = update.LastError;
     entry.IsUpdate           = !update.IsSnapshot;
     entry.Sequence           = update.Sequence.ToString();
     entry.Timestamp          = update.Issued;
     entry.State = update.IsProcessed ? FixtureProcessingState.PROCESSED : FixtureProcessingState.PROCESSING;
 }
Esempio n. 2
0
        private void OnFixtureUpdate(IFixtureOverviewDelta fixture)
        {
            if (fixture == null)
            {
                return;
            }

            FixtureDetails details = new FixtureDetails {
                Id = fixture.Id
            };

            // ListenerOverview is not suitable to use here....
            // we have to get the FixtureOverview to have all data
            var overview = Supervisor.GetFixtureOverview(fixture.Id);

            FillFixtureOverview(details, overview);

            if (fixture.ListenerOverview != null)
            {
                details.IsDeleted = fixture.ListenerOverview.IsDeleted.GetValueOrDefault();
                details.IsOver    = fixture.ListenerOverview.IsOver.GetValueOrDefault();
            }

            if (fixture.FeedUpdate != null)
            {
                FixtureProcessingEntry entry = new FixtureProcessingEntry();
                FillProcessingEntry(entry, fixture.FeedUpdate);
                details.AddProcessingEntry(entry);
            }

            Supervisor.Service.StreamingService.OnFixtureUpdate(details);

            if (fixture.LastError != null && fixture.LastError.IsErrored)
            {
                ProcessingEntryError error = new ProcessingEntryError
                {
                    FixtureId          = fixture.Id,
                    FixtureDescription = overview.Name,
                    Sequence           = fixture.LastError.Sequence
                };

                FillProcessingEntryError(error, fixture.LastError);
                Supervisor.Service.StreamingService.OnError(error);
            }
        }
Esempio n. 3
0
        public IEnumerable <IFixtureProcessingEntry> GetFixtureHistory(string fixtureId)
        {
            if (string.IsNullOrEmpty(fixtureId))
            {
                return(Enumerable.Empty <IFixtureProcessingEntry>());
            }

            List <IFixtureProcessingEntry> ret = new List <IFixtureProcessingEntry>();

            var tmp = Supervisor.GetFixtureOverview(fixtureId);

            foreach (var update in tmp.GetFeedAudit())
            {
                FixtureProcessingEntry entry = new FixtureProcessingEntry();
                FillProcessingEntry(entry, update);
                ret.Add(entry);
            }

            return(ret);
        }
Esempio n. 4
0
        public IFixtureDetails GetFixtureDetail(string fixtureId)
        {
            if (string.IsNullOrEmpty(fixtureId))
            {
                return(null);
            }

            var overview = Supervisor.GetFixtureOverview(fixtureId);

            FixtureDetails details = new FixtureDetails();

            FillFixtureOverview(details, overview);

            foreach (var update in overview.GetFeedAudit())
            {
                FixtureProcessingEntry entry = new FixtureProcessingEntry();
                FillProcessingEntry(entry, update);
                details.AddProcessingEntry(entry);
            }

            return(details);
        }