private void LogToFile(string fileNameSuffix, R2ErrorTicket tkt, string moreContent) { var fName = $"PostingError_{fileNameSuffix}"; var content = $"{L.F}{tkt.ToString()}{L.F}{moreContent}"; _fs.WriteRepo2LogFile(fName, content); }
private void LogFailedReply(NodeReply rep, R2ErrorTicket tkt) { var content = rep == null ? "NULL" : "FAILED"; content = $"Received {content} reply after posting error ticket."; if (rep != null) { content += $"{L.F}{rep.ErrorsText}"; if (rep.HasWarnings) { content += $"{L.F}{rep.WarningsText}"; } } LogToFile("FailedReply", tkt, content); }
private static async Task HandleError <T>(string caughtBy, T exceptionObj) { try { using (var scope = Repo2IoC.BeginScope()) { var tkt = R2ErrorTicket.From(exceptionObj); if (!R2ConfigFile1.Found(_cfgKey)) { Alerter.ShowError($"{caughtBy} Error", tkt.Description); return; } var cfg = R2ConfigFile1.Parse(_cfgKey); var cli = scope.Resolve <IR2RestClient>(); var svr = scope.Resolve <IErrorTicketManager>(); var ok = await cli.EnableWriteAccess(cfg, _addToWhiteList); if (!ok) { throw new Exception("Failed to enable write access."); } svr.Post(tkt); if (_showError) { Alerter.ShowError($"{caughtBy} Error", tkt.Title); } } } catch (Exception ex) { Alerter.Show(ex, "Failed to Handle Error"); } }
public async void Post(R2ErrorTicket r2ErrorTicket) { NodeReply rep = null; try { rep = await _client.PostNode(r2ErrorTicket, new CancellationToken()); } catch (Exception ex) { LogErrorInPosting(r2ErrorTicket, ex); return; } if (rep == null) { LogFailedReply(null, r2ErrorTicket); } else if (rep.Failed) { LogFailedReply(rep, r2ErrorTicket); } }
private void LogErrorInPosting(R2ErrorTicket tkt, Exception ex) => LogToFile("RaisedException", tkt, $"Exception raised while posting error ticket.{L.F}{ex.Info(true, true)}");