Ejemplo n.º 1
0
        private static void Collect()
        {
            var tasks = new List <Task>();

            foreach (var searchCriteria in searchCriterias)
            {
                tasks.Add(Task.Run(() =>
                {
                    ConsolePrinter.PrintGettingEventLogData(searchCriteria.LogName.ToString());

                    List <EventLogData> eventLogs = eventCollector.GetEventLogEntries(searchCriteria).Select(entry => entry.ToEventLogData()).ToList();

                    ConsolePrinter.PrintEventLogEntries(searchCriteria.LogName.ToString(), eventLogs.Count());

                    string filePath = GetFilePath(searchCriteria.LogName.ToString());

                    exportService.Export(eventLogs, filePath);

                    ConsolePrinter.PrintExportedTo(filePath);
                }));
            }

            try
            {
                Task.WaitAll(tasks.ToArray());
            }
            catch (AggregateException ae)
            {
                ae.Handle((ex) =>
                {
                    if (ex is SystemException)
                    {
                        ConsolePrinter.PrintError(ex);
                        return(true);
                    }
                    return(false);
                });
            }
        }