private int extractEvents(JobConfiguration jobConfiguration, JobTarget jobTarget, ControllerApi controllerApi, string eventType) { loggerConsole.Info("Extract List of Events {0} ({1} time ranges)", eventType, jobConfiguration.Input.HourlyTimeRanges.Count); JArray listOfEventsArray = new JArray(); if (File.Exists(FilePathMap.ApplicationEventsDataFilePath(jobTarget, eventType)) == false) { foreach (JobTimeRange jobTimeRange in jobConfiguration.Input.HourlyTimeRanges) { long fromTimeUnix = UnixTimeHelper.ConvertToUnixTimestamp(jobTimeRange.From); long toTimeUnix = UnixTimeHelper.ConvertToUnixTimestamp(jobTimeRange.To); try { string eventsJSON = controllerApi.GetApplicationEvents(jobTarget.ApplicationID, eventType, fromTimeUnix, toTimeUnix); if (eventsJSON != String.Empty) { // Load events JArray eventsInHourArray = JArray.Parse(eventsJSON); foreach (JObject eventObject in eventsInHourArray) { listOfEventsArray.Add(eventObject); } Console.Write("[{0}]+", eventsInHourArray.Count); } } catch (Exception ex) { logger.Warn(ex); logger.Warn("Unable to parse JSON for Events Application={0}, EventType={1}, From={2}, To={3}", jobTarget.ApplicationID, eventType, fromTimeUnix, toTimeUnix); } } if (listOfEventsArray.Count > 0) { FileIOHelper.WriteJArrayToFile(listOfEventsArray, FilePathMap.ApplicationEventsDataFilePath(jobTarget, eventType)); logger.Info("{0} {1} events from {2:o} to {3:o}", eventType, listOfEventsArray.Count, jobConfiguration.Input.TimeRange.From, jobConfiguration.Input.TimeRange.To); loggerConsole.Info("{0} {1} events", eventType, listOfEventsArray.Count); } } return(listOfEventsArray.Count); }