private void WorkerOnStatusChanged(INotifyThreadStatus sender, StatusChangedEventArgs args) { if (args.AttachedData?.guid != Guid ?? false) { return; } _worker.StatusChanged -= WorkerOnStatusChanged; _database.SetZipFileLocation(Guid, args.AttachedData.destinationPath); WebFileLocation = args.AttachedData.destinationPath; string userstory = null, exception; using (ZipArchive archive = new ZipArchive(File.OpenRead(args.AttachedData.destinationPath), ZipArchiveMode.Read, false)) { ZipArchiveEntry userstoryEntry = archive.GetEntry("userstory.txt"); if (userstoryEntry != null) { using (Stream s = userstoryEntry.Open()) { byte[] buffer = new byte[userstoryEntry.Length]; s.Read(buffer, 0, buffer.Length); userstory = Encoding.UTF8.GetString(buffer); } } ZipArchiveEntry exceptionEntry = archive.GetEntry("exception.txt"); using (Stream s = exceptionEntry.Open()) { byte[] buffer = new byte[exceptionEntry.Length]; s.Read(buffer, 0, buffer.Length); exception = Encoding.UTF8.GetString(buffer); } } Userstory = userstory; StackTrace = exception; _database.SetStackTrace(Guid, exception); if (userstory != null) { _database.SetUserStory(Guid, userstory); } Progress = CrashReportProcessingProgress.Downloaded; }
private void OnStatusChanged(StatusChangedEventArgs args) { StatusChanged?.Invoke(this, args); }
protected virtual void OnStatusChanged(StatusChangedEventArgs args) { StatusChanged?.Invoke(this, args); }