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