/// <summary>
        /// Create single ApacheLog
        /// </summary>
        /// <param name="log"></param>
        /// <returns></returns>
        public ApacheLog Create(ApacheLog log)
        {
            using (var connection = new SqlConnection(ConnectionString))
            {
                var sqlQuery = "INSERT INTO ApacheLogs(Client,QueryParams,RequestDate,Route,Size,StatusCode,Geolocation) " +
                               " VALUES(@Client,@QueryParams,@RequestDate,@Route,@Size,@StatusCode,@Geolocation); SELECT CAST(SCOPE_IDENTITY() as int)";

                int?logId = connection.Query <int>(sqlQuery, log).FirstOrDefault();
                log.Id = (int)logId;
            }

            return(log);
        }
Example #2
0
        /// <summary>
        /// return null if parse is unsuccessed or ApacheLog if successed
        /// </summary>
        /// <returns></returns>
        public ApacheLog Parse()
        {
            Result = new ApacheLog();

            foreach (var handler in _visitors)
            {
                if (!handler.Handle(this))
                {
                    return(null);
                }
            }

            return(Result);
        }
Example #3
0
        public bool TryParse(string line, out ApacheLog log)
        {
            var parser = new ApacheLogParser(line,
                                             new RouteLogParserVisitor(),
                                             new HostLogParserVisitor(),
                                             new DateTimeOffsetLogParserVisitor(),
                                             new ContentSizeVisitorLogParser(),
                                             new GeolocationLogParserVisitor(),
                                             new StatusCodeLogParserVisitor());

            log = parser.Parse();

            return(log != null);
        }
 public void Add(ApacheLog entity) =>
 Connection.Execute(AddStatement, entity, Transaction);