public MonitorLogsController(UserManager <ApplicationUser> userManager,
                              IMonitorsRepository monitorsRepository,
                              IMonitorLogsRepository monitorLogsRepository,
                              ILogger <MonitorsController> logger)
     : base(userManager, logger)
 {
     _monitorsRepository    = monitorsRepository;
     _monitorLogsRepository = monitorLogsRepository;
 }
Exemplo n.º 2
0
        public static async Task Run(IMonitorsRepository monitorsRepository,
                                     IMonitorLogsRepository monitorLogsRepository,
                                     IMonitoringService monitoringService,
                                     IPushNotificationService pushNotificationService,
                                     IPushNotificationTokensRepository pushNotificationTokensRepository)
        {
            await monitoringService.Monitor(null, monitorsRepository, monitorLogsRepository);

            var applicationUserMonitors = monitoringService.GetFailedMonitors();

            await pushNotificationService.SendPushNotifications(applicationUserMonitors, pushNotificationTokensRepository);
        }
        public async Task <List <MonitorLog> > Monitor(IEnumerable <Monitor> sitesToMonitor,
                                                       IMonitorsRepository monitorsRepository,
                                                       IMonitorLogsRepository monitorLogsRepository)
        {
            if (sitesToMonitor == null)
            {
                sitesToMonitor = await monitorsRepository.GetAllActiveMonitors();
            }

            var httpMonitors
                = sitesToMonitor.Where
                      (monitor => monitor.Type == MonitorTypeEnum.HTTP)
                  .ToList();

            var keyWordMonitors
                = sitesToMonitor.Where
                      (monitor => monitor.Type == MonitorTypeEnum.KEYWORD)
                  .ToList();

            var pingMonitors
                = sitesToMonitor.Where
                      (monitor => monitor.Type == MonitorTypeEnum.PING)
                  .ToList();

            //var portMonitors
            //    = sitesToMonitor.Where
            //        (monitor => monitor.Type == MonitorTypeEnum.PORT)
            //            .ToList();

            await HttpMonitor(httpMonitors);

            await KeyWordMonitor(keyWordMonitors);

            //TODO refactor and run this asynchronously..
            PingMonitor(pingMonitors);

            await monitorsRepository.UpdateMonitors(_processedMonitors);

            await monitorLogsRepository.SaveMonitorLogs(_monitorLogs);

            return(_monitorLogs);
        }