66 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace gehGassiApp.Core.Interfaces
{
/// <summary>
/// Schnittstellenbeschreibung für einen Service der Fehler-Meldungen an das App-Center senden kann
/// </summary>
public interface IAppReportingService
{
/// <summary>
/// Loggen eines Fehlers mittels App-Center
/// </summary>
/// <param name="ex">Fehler</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackErrorAsync(Exception ex, IDictionary<string, string> properties = null);
/// <summary>
/// Loggen eines Fehlers mittels App-Center
/// </summary>
/// <param name="ex">Fehler</param>
/// <param name="logAppVariables">Sollen die statischen App-Variablen angehängt werden?</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackErrorAsync(Exception ex, bool logAppVariables, IDictionary<string, string> properties = null);
/// <summary>
/// Erstellt eine Fake-Error für einen Logout, damit dieser verfolgt werden kann
/// </summary>
/// <param name="location">Wo ist der Logout aufgetreten</param>
/// <param name="logAppVariables">Sollen die statischen App-Variablen angehängt werden?</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackLogoutAsync(string location, bool logAppVariables, IDictionary<string, string> properties = null);
/// <summary>
/// Tracking eines Events
/// </summary>
/// <param name="eventName">Name des Events</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackEventAsync(string eventName, IDictionary<string, string> properties = null);
/// <summary>
/// Tracking eines Events
/// </summary>
/// <param name="eventName">Name des Events</param>
/// <param name="logAppVariables">Sollen die statischen App-Variablen angehängt werden?</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackEventAsync(string eventName, bool logAppVariables, IDictionary<string, string> properties = null);
/// <summary>
/// Tracking einer Seite
/// </summary>
/// <param name="pageName">Seite</param>
/// <param name="properties">Optional: zusätzliche Werte</param>
/// <returns>Task</returns>
Task TrackPageViewAsync(string pageName, IDictionary<string, string> properties = null);
}
}