using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRH.Common;
namespace Vrh.iScheduler.Interfaces
{
///
/// iScheduler beépülők számára készült interface.
///
public interface ISchedulerPlugin
{
#region Properties
///
/// A feladat végrehajtás (TimedTask) során keletkezett napló
/// bejegyzések listája.
///
List LogEntries { get; }
///
/// A beépülő neve. Kötelező.
/// Ha üres, akkor a beépülő betöltésekor kivétel keletkezik.
///
///
/// Jelenleg egy típus van az 'iSchedulerReport', de nem fontos csak
/// az ütemező számára egyedi legyen. De a lényeg, hogy az ütemező
/// ez alapján tudja majd megtalálni több beépülő esetén, melyiket is kellene
/// használnia.
///
string Name { get; }
#endregion Properties
#region Methods
///
/// Ütemezett (időzített) feladat végrehajtása.
///
/// Az ütemezett objektum típus XmlParser kapcsolati sztringje.
/// A környezetre érvényes nyelvi kód. Ha null, vagy üres, akkor az XML paraméterező fájlban beállított lesz az érvényes.
/// Az ütemezett objektum azonosítója.
/// Az ütemezett objektumon elvégzendő művelet azonosítója.
/// Az ütemezés ideje (OperationTime mező értéke) 'yyyyMMddHHmmss' sztring formátumban.
///
/// Az ütemezett objektum csoport azonosítója.
/// Opcionális, ha üres vagy null, akkor az xml paraméterfájlban megadott lesz érvényes.
///
///
/// Egy ReturnInfoJSON objektum a message részében formázott html üzenettel.
///
ReturnInfoJSON TimedTask(string xml, string lcid, string objectId, string operationId, string timeStamp, string groupId = null);
///
/// Ütemezendő objektumok létezésének ellenőrzése.
/// Az ütemező a -ben felsorolja, mely
/// objektumokat ellenőrzi.
///
/// Az ütemezett objektum típus XmlParser kapcsolati sztringje.
/// Az ellenőrzendő objektumok listája, vesszővel elválasztva.
///
/// Az ütemezett objektum csoport azonosítója.
/// Opcionális, ha üres vagy null, akkor az xml paraméterfájlban megadott lesz érvényes.
///
///
/// Egy CheckListJSON elemekből álló lista.
/// Ha nincs elem, akkor üres lista lesz az eredmény, nem null.
///
List CheckObjects(string xml, string objectList, string groupId = null);
///
/// Az ütemezhető objektumok listája.
///
/// Az ütemezett objektum típus XmlParser kapcsolati sztringje.
///
/// Igaz, ha csak az aktív jelölésú ütemezhető objektumok kellenek.
/// Alapértelmezett értéke: true.
///
///
/// Az ütemezett objektum csoport azonosítója.
/// Opcionális, ha üres vagy null, akkor az xml paraméterfájlban megadott lesz érvényes.
///
///
/// Egy SelectListJSON elemekből álló lista.
/// Ha nincs elem, akkor üres lista lesz az eredmény, nem null.
///
List ListObjects(string xml, bool isActiveOnly = true, string groupId = null);
///
/// Az ütemezésben kezdeményezhető műveletek listája.
///
///
/// Egy SelectListJSON elemekből álló lista.
/// Ha nincs elem, akkor üres lista lesz az eredmény, nem null.
///
List ListOperations();
#endregion Methods
}
}