示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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");
            }
        }
示例#4
0
        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);
            }
        }
示例#5
0
 private void LogErrorInPosting(R2ErrorTicket tkt, Exception ex)
 => LogToFile("RaisedException", tkt,
              $"Exception raised while posting error ticket.{L.F}{ex.Info(true, true)}");