private ErrorLogEntry LoadErrorLogEntry(string path) { for (var i = 0; i < 5; i++) { try { using var reader = XmlReader.Create(path, new XmlReaderSettings() { CheckCharacters = false }); if (!reader.IsStartElement("error")) { return(null); } var id = reader.GetAttribute("errorId"); var error = ErrorXml.Decode(reader); return(new ErrorLogEntry(this, id, error)); } catch (IOException) { //ignored Task.Delay(500).GetAwaiter().GetResult(); } } throw new IOException(""); }
/// <summary> /// Returns the specified error from the filesystem, or throws an exception if it does not exist. /// </summary> public override ErrorLogEntry GetError(string id) { try { id = new Guid(id).ToString(); // validate GUID } catch (FormatException e) { throw new ArgumentException(e.Message, id, e); } var file = new DirectoryInfo(LogPath).GetFiles($"error-*-{id}.xml") .FirstOrDefault(); if (file == null) { return(null); } if (!IsUserFile(file.Attributes)) { return(null); } using var reader = XmlReader.Create(file.FullName); return(new ErrorLogEntry(this, id, ErrorXml.Decode(reader))); }
private void ErrorsXmlToList(XmlReader reader, ICollection <ErrorLogEntry> errorEntryList) { Debug.Assert(reader != null); if (errorEntryList != null) { while (reader.IsStartElement("error")) { string id = reader.GetAttribute("errorId"); Error error = ErrorXml.Decode(reader); errorEntryList.Add(new ErrorLogEntry(this, id, error)); } } }
private ErrorLogEntry LoadErrorLogEntry(string path) { using (var reader = XmlReader.Create(path)) { if (!reader.IsStartElement("error")) { return(null); } var id = reader.GetAttribute("errorId"); var error = ErrorXml.Decode(reader); return(new ErrorLogEntry(this, id, error)); } }