internal ErrorReport(MSErrorReport msReport) { // If Id is not null we have loaded the report from the cache if (Id != null) { return; } Id = msReport.IncidentIdentifier; AppStartTime = NSDateToDateTimeOffset(msReport.AppStartTime); AppErrorTime = NSDateToDateTimeOffset(msReport.AppErrorTime); Device = msReport.Device == null ? null : new Device(msReport.Device); AndroidDetails = null; iOSDetails = new iOSErrorDetails(msReport.ReporterKey, msReport.Signal, msReport.ExceptionName, msReport.ExceptionReason, (uint)msReport.AppProcessIdentifier); MSWrapperException wrapperException = MSWrapperExceptionManager.LoadWrapperExceptionWithUUID(msReport.IncidentIdentifier); if (wrapperException != null && wrapperException.ExceptionData != null) { Exception = CrashesUtils.DeserializeException(wrapperException.ExceptionData.ToArray()); } }
public override NSArray AttachmentsWithCrashes(MSCrashes crashes, MSErrorReport msReport) { if (GetErrorAttachments == null) { return(null); } var report = new ErrorReport(msReport); var attachments = GetErrorAttachments(report); if (attachments != null) { var nsArray = new NSMutableArray(); foreach (var attachment in attachments) { if (attachment != null) { nsArray.Add(attachment.internalAttachment); } else { AppCenterLog.Warn(LogTag, "Skipping null ErrorAttachmentLog in Crashes.GetErrorAttachments."); } } return(nsArray); } return(null); }
public override bool CrashesShouldProcessErrorReport(MSCrashes crashes, MSErrorReport msReport) { if (ShouldProcessErrorReport == null) { return(true); } var report = new ErrorReport(msReport); return(ShouldProcessErrorReport(report)); }
public override void CrashesDidSucceedSendingErrorReport(MSCrashes crashes, MSErrorReport msReport) { if (_owner.SentErrorReport != null) { var report = ErrorReportCache.GetErrorReport(msReport); var e = new SentErrorReportEventArgs(); e.Report = report; _owner.SentErrorReport(null, e); } }
public override void CrashesDidFailSendingErrorReport(MSCrashes crashes, MSErrorReport msReport, NSError error) { if (_owner.FailedToSendErrorReport != null) { var report = ErrorReportCache.GetErrorReport(msReport); var e = new FailedToSendErrorReportEventArgs(); e.Report = report; e.Exception = error; _owner.FailedToSendErrorReport(null, e); } }
public override bool CrashesShouldProcessErrorReport(MSCrashes crashes, MSErrorReport msReport) { if (_owner.ShouldProcessErrorReport == null) { return(true); } var report = ErrorReportCache.GetErrorReport(msReport); return(_owner.ShouldProcessErrorReport(report)); }
public override void CrashesWillSendErrorReport(MSCrashes crashes, MSErrorReport msReport) { if (SendingErrorReport != null) { var report = new ErrorReport(msReport); var e = new SendingErrorReportEventArgs { Report = report }; SendingErrorReport(null, e); } }
public override void CrashesDidFailSendingErrorReport(MSCrashes crashes, MSErrorReport msReport, NSError error) { if (FailedToSendErrorReport != null) { var report = new ErrorReport(msReport); var e = new FailedToSendErrorReportEventArgs { Report = report, Exception = error }; FailedToSendErrorReport(null, e); } }
public override void CrashesWillSendErrorReport(MSCrashes crashes, MSErrorReport msReport) { if (_owner.SendingErrorReport == null) { return; } var report = ErrorReportCache.GetErrorReport(msReport); var e = new SendingErrorReportEventArgs(); e.Report = report; _owner.SendingErrorReport(null, e); }
internal static ErrorReport GetErrorReport(MSErrorReport msReport) { ErrorReport cachedReport; if (cachedReports.TryGetValue(msReport.IncidentIdentifier, out cachedReport)) { return(cachedReport); } var newErrorReport = new ErrorReport(msReport); cachedReports[msReport.IncidentIdentifier] = newErrorReport; return(newErrorReport); }
public override MSErrorAttachment AttachmentWithCrashes(MSCrashes crashes, MSErrorReport msReport) { if (_owner.GetErrorAttachment == null) { return(null); } var report = ErrorReportCache.GetErrorReport(msReport); ErrorAttachment attachment = _owner.GetErrorAttachment(report); if (attachment != null) { return(attachment.internalAttachment); } return(null); }