/** * Regel bevat de goede lay-out (Na 1 april 2018 als het goed is). * Nu nog wel bepalen of deze naar de database geschreven moet worden * */ internal void verwerkGoedeRegel(string regel) { IISLogObject iislog = new IISLogObject(); // Soms wordt binnen een tekst 2 quotes gebruikt om de quote te escapen if (regel.Contains("\"\"") & !regel.Contains(" \"\" ")) { regel = regel.Replace("\"\"", ""); } List <string> gesplitst = splitsDeRegel(regel); try { iislog = maakEenIISLogObject(gesplitst); } catch (Exception e) { HuubLog("Fout in maakEenIISLogObject : " + e.Message); } // Toevoegen van de objecten in een hashset TODO vaak dubbel maar waarom if (!lijstIISLogObjecten.Add(iislog)) { HuubLog("Dubbele rij in de iislog : " + regel, true); //var x = lijstIISLogObjecten.GetHashCode(); //var y = lijstIISLogObjecten.GetObjectData(iislog); } }
/// <summary> /// Op basis van een gesplitse tekstregel omzetten naar object iislog /// voorlopig alleen op oude en nieuwe omgeving aangepast. Nog niet op de NAM logs /// </summary> /// <param name="gesplitst"></param> /// <returns></returns> private IISLogObject maakEenIISLogObject(List <string> gesplitst) { IISLogObject iislog = new IISLogObject(); string tijd = gesplitst[LogVeldIndex.tijd]; string tijdDeelVoorPunt = tijd.Substring(0, tijd.IndexOf('.')); //TODO Davey: kijken of hier losse objecten of samen moeten komen als er een regel op hetzelfde tijdstip voorkomt string tijdDeelNaPunt = tijd.Substring(tijd.IndexOf('.') + 1); try { iislog.datum = maakDatum(gesplitst[LogVeldIndex.datum]); iislog.uur = tijdDeelVoorPunt.Substring(0, 2); iislog.fractie_tijd = tijdDeelNaPunt; iislog.time_taken = gesplitst[LogVeldIndex.time_taken]; iislog.cs_uri_query = gesplitst[LogVeldIndex.cs_uri_query].Replace("\"", ""); iislog.s_computername = gesplitst[LogVeldIndex.s_computername].Replace("\"", ""); iislog.cs_referer = gesplitst[LogVeldIndex.cs_referer].Replace("\"", ""); iislog.s_contentpath = gesplitst[LogVeldIndex.s_contentpath].Replace("\"", ""); iislog.sc_status = gesplitst[LogVeldIndex.sc_status]; iislog.sc_bytes = gesplitst[LogVeldIndex.sc_bytes]; iislog.cs_bytes = gesplitst[LogVeldIndex.cs_bytes]; iislog.cs_host = gesplitst[LogVeldIndex.cs_host].Replace("\"", ""); iislog.cs_method = gesplitst[LogVeldIndex.cs_method]; iislog.s_ip = gesplitst[LogVeldIndex.s_ip]; iislog.x_forwarded_for = gesplitst[LogVeldIndex.x_forwarded_for].Replace("\"", ""); iislog.cs_cookie = gesplitst[LogVeldIndex.cs_cookie].Replace("\"", ""); iislog.c_ip = gesplitst[LogVeldIndex.c_ip]; } catch (Exception e) { HuubLog("Fout in maakEenIISLogObject : " + e.Message); } return(iislog); }