using System.Activities;
using System.IO;
namespace Accantum.Wms.ActivityContracts
{
/// <summary>
/// Extension, um in der Execute-Methode einer Aktivität auf Funktionalität des WMS-Dienstes zugreifen zu können
/// </summary>
public interface IWmsApiExtension
{
/// <summary>
/// Prüft, ob das Verzeichnis in einem dem Mandanten zugewiesenen Verzeichnis liegt.
/// </summary>
/// <param name="a_oFileInfo">FileInfo</param>
/// <param name="a_oContext">Context der CodeActivity aus der Execute-Methode</param>
/// <returns>true, wenn es ein gültiges Verzeichnis ist.</returns>
bool IsInTenantFolder(FileSystemInfo a_oFileInfo, CodeActivityContext a_oContext);
/// <summary>
/// Prüft, ob das Verzeichnis in einem dem Mandanten zugewiesenen Verzeichnis liegt.
/// </summary>
/// <param name="a_oFileInfo">FileInfo</param>
/// <param name="a_oContext">Context der NativeActivity aus der Execute-Methode</param>
/// <returns>true, wenn es ein gültiges Verzeichnis ist.</returns>
bool IsInTenantFolder(FileSystemInfo a_oFileInfo, NativeActivityContext a_oContext);
/// <summary>
/// Protokolliert einen Fehler im Protokoll der Workflow-Instanz
/// </summary>
void TrackError(CodeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
/// <summary>
/// Protokolliert einen Fehler im Protokoll der Workflow-Instanz
/// </summary>
void TrackError(NativeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
/// <summary>
/// Protokolliert eine Infomeldung im Protokoll der Workflow-Instanz
/// </summary>
void TrackInfo(CodeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
/// <summary>
/// Protokolliert eine Infomeldung im Protokoll der Workflow-Instanz
/// </summary>
void TrackInfo(NativeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
/// <summary>
/// Protokolliert eine Warnung im Protokoll der Workflow-Instanz
/// </summary>
void TrackWarning(CodeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
/// <summary>
/// Protokolliert eine Warnung im Protokoll der Workflow-Instanz
/// </summary>
void TrackWarning(NativeActivityContext a_oContext, string a_sMessage, int a_iMessageCode = 0, string a_sDetails = "");
}
}