private async Task <List <IMonitoringObject> > GetMonitoringObjectsForProcessing(Func <IMonitoringObject, bool> filter)
        {
            var now = DateTime.UtcNow;
            Func <IMonitoringObject, bool> decoratedFilter = (@object) => !(@object.SkipCheckUntil > now) && filter(@object);
            var allMonitoringObjects = await _monitoringService.GetCurrentSnapshotAsync();

            var filteredObjects = allMonitoringObjects.Where(@object => decoratedFilter(@object));

            return(filteredObjects.ToList());
        }
示例#2
0
        public async Task <ListDataMonitoringObjectModel> Get()
        {
            var snapshot = await _monitoringService.GetCurrentSnapshotAsync();

            var model = snapshot
                        .Select(x => new MonitoringObjectModel
            {
                ServiceName = x.ServiceName,
                Version     = x.Version,
                LastPing    = x.LastTime,
                SkipUntil   = x.SkipCheckUntil,
                Url         = x.Url
            })
                        .ToList();

            return(new ListDataMonitoringObjectModel {
                Data = model
            });
        }