Ejemplo n.º 1
0
        public Task <ClientData[]> AnalyzeLog(Stream stream, LogFormat format)
        {
            // bug .net core: https://github.com/dotnet/corefx/issues/10024
            var bug10024 = new System.Net.Sockets.Socket(System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);

            BaseParser parser = null;

            parser = GetParserForFormat(format);

            var logEntries = parser.ParseLog(stream);
            var result     = Task.WhenAll(logEntries.GroupBy(l => l.ClientIP).Select(async g => new ClientData
            {
                IP           = g.Key,
                RequestCount = g.Count(),
                HostEntry    = await this.GetHostEntry(g.Key)
            }));

            return(result);
        }