These docs are for v1.0. Click to read the latest docs for v1.0.1.
  1. Take the steps described in Integrate DevMateKit if you haven't done it yet.
  2. You can specify additional DMFrameworkSettings properties if needed. DevMate Crash Report provides the following configuration options:
PropertyTypeDescription
IsBetaboolSpecifies whether a current version of the application is Beta.
ApplicationSettingsDictionary<string,object>Application settings that must be sent with the report data.
AdditionalInfromationstringAdditional information that must be sent with the report data.
ApplicationIconstringSets a “TitleBar” icon for DevMate Framework windows. Must contain at least one 16x16pt icon. Example: pack://application:,,,/TestApp;component/icon.ico.
LogFilePathstringPath to a log file (if there is a number of log files, it sends only the recently used). If a value is null or empty, or file does not exist, then the Framework tries to load a file from the Logs property.
LogsstringUsed to set up specific logs if a LogFilePath value is null or empty. If a value is null or empty, an empty string is sent to the server.

For example:

DMFeedbackFrameworkSettings.ApplicationSettings.Add("Setting1", "Value1"); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("Language", "en"); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("AppRunCount", 0); 
DMFeedbackFrameworkSettings.ApplicationSettings.Add("Setting2", "Value2");  

DMFeedbackFrameworkSettings.LogFilePath = @"C:\Program Files\AppName\Logs\logfile.log";
DMFeedbackFrameworkSettings.AdditionalInformation = "Version with hidden feature";

Crashes

This report type is generally used to notify about unhandled exceptions.
To subscribe for unhandled exceptions:

App.Current.DispatcherUnhandledException += CurrentOnDispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
					
...
 
private void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
	DMFeedbackWindowController.ShowCrashReportDialog(e.Exception);  
}    
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)  
{
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
  	DMFeedbackWindowController.ShowCrashReportDialog(e.ExceptionObject as Exception);
}
private void CurrentOnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)  
{
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
	DMFeedbackWindowController.ShowCrashReportDialog(e.Exception);  
}

Exceptions

Generally, this type of a report is used to show non-critical exceptions handled with “try-catch” statement.
For example:

try  
{
  	Directory.CreateDirectory(“testFolder”);  
}  
catch (Exception ex)  
{
  	Trace.TraceError("Could not create folder”);a
  	DMFeedbackWindowController.BigIconSource = “pack://application:,,,/Images/icon.png";
  	DMFeedbackWindowController.ShowCrashReportDialog(ex, FeedbackTypes.Exception);  
}