private void FindValues(IEnumerable<XElement> query, FrebLog frebLog) { //Get /Event/System/Level that are Level 1, 2, or 3 string[] eventIDsToLoad = new string[] { "1", "2", "3" }; var filteredEvents = query.Where(e => eventIDsToLoad.Contains(e.Element(_NameSpace + "System").Element(_NameSpace + "Level").Value)).ToList(); foreach (var item in filteredEvents) { frebLog.System = new SystemData() { Provider = (item.Element(_NameSpace + "System").Element(_NameSpace + "Provider").Attribute("Name").Value), EventID = (item.Element(_NameSpace + "System").Element(_NameSpace + "EventID").RetrieveValue()), Version = (item.Element(_NameSpace + "System").Element(_NameSpace + "Version").RetrieveValue()), Level = (item.Element(_NameSpace + "System").Element(_NameSpace + "Level").RetrieveValue()), OPcode = (item.Element(_NameSpace + "System").Element(_NameSpace + "Opcode").RetrieveValue()), Keywords = (item.Element(_NameSpace + "System").Element(_NameSpace + "Keywords").RetrieveValue()), TimeCreated = (item.Element(_NameSpace + "System").Element(_NameSpace + "TimeCreated").Attribute("SystemTime").Value), Computer = (item.Element(_NameSpace + "System").Element(_NameSpace + "Computer").RetrieveValue()) }; EventData eventData = new EventData(); eventData.ContextID = eventData.RetrieveProperty(item.Element(_EventDataNameSpace + "EventData"), _EventDataNameSpace + "Data", _EventDataNameSpace + "Name", "ContextId"); eventData.LineNumber = eventData.RetrieveProperty(item.Element(_EventDataNameSpace + "EventData"), _EventDataNameSpace + "Data", _EventDataNameSpace + "Name", "LineNumber"); eventData.Description = eventData.RetrieveProperty(item.Element(_EventDataNameSpace + "EventData"), _EventDataNameSpace + "Data", _EventDataNameSpace + "Name", "Description"); eventData.ErrorCode = eventData.RetrieveProperty(item.Element(_EventDataNameSpace + "EventData"), _EventDataNameSpace + "Data", _EventDataNameSpace + "Name", "ErrorCode"); frebLog.Event = eventData; FrebLogDB frebTable = new FrebLogDB(); frebTable.URL = frebLog.URL; frebTable.Filename = frebLog.FrebFileName; frebTable.Provider = frebLog.System.Provider; frebTable.EventID = frebLog.System.EventID; frebTable.Version = frebLog.System.Version; frebTable.FLevel = frebLog.System.Level; frebTable.OPcode = frebLog.System.OPcode; frebTable.Keywords = frebLog.System.Keywords; if (!string.IsNullOrEmpty(frebLog.System.TimeCreated)) { string[] strTimeSplit = frebLog.System.TimeCreated.Split(new string[] { "T" }, StringSplitOptions.RemoveEmptyEntries); if (strTimeSplit.Count() > 1) { frebTable.DateCreated = strTimeSplit[0]; frebTable.TimeCreated = strTimeSplit[1]; } } frebTable.Computer = frebLog.System.Computer; frebTable.ContextID = frebLog.Event.ContextID; frebTable.LineNumber = frebLog.Event.LineNumber; frebTable.Description = frebLog.Event.Description; frebTable.ErrorCode = frebLog.Event.ErrorCode; if ((string.IsNullOrEmpty(frebTable.LineNumber) && string.IsNullOrEmpty(frebTable.Description))) continue; PersistLogInfo(frebTable); break; } }
/// <summary> /// Deprecated Method for adding a new object to the FrebLogDBs EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToFrebLogDBs(FrebLogDB frebLogDB) { base.AddObject("FrebLogDBs", frebLogDB); }
private static void PersistLogInfo(FrebLogDB frebTable) { frebEntities db = new frebEntities(); db.AddToFrebLogDBs(frebTable); db.SaveChanges(); }
/// <summary> /// Create a new FrebLogDB object. /// </summary> /// <param name="id">Initial value of the ID property.</param> public static FrebLogDB CreateFrebLogDB(global::System.Int32 id) { FrebLogDB frebLogDB = new FrebLogDB(); frebLogDB.ID = id; return frebLogDB; }