Beispiel-Plugin
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WATO.PluginContract;
namespace WATO.TestPlugin
{
public class TestPlugin : IPluginImport
{
#region Properties
/// <summary>
/// Eindeutige Id des Plugin
/// </summary>
public Guid Id
{
get
{
return new Guid("97125fe3-ec09-42d4-abaa-c6ee82147410");
}
}
/// <summary>
/// Name des Plugin
/// </summary>
public string Name
{
get
{
return "Test Plugin";
}
}
/// <summary>
/// Beschreibung des Plugin
/// </summary>
public string Beschreibung
{
get
{
return "TestPlugin für watoConnect";
}
}
/// <summary>
/// Gibt an, ob es ein Import ist, der lokal abgelegte Dateien einliest,
/// so dass die gleiche Import-Logik wie CSV/XML Files verwendet werden kann.
/// Bei Importen aus Datenbanken, Web Services, etc. muss hier "false" zurückgegeben werden.
/// </summary>
public bool IsFileBasedImport
{
get
{
return true;
}
}
/// <summary>
/// Gibt an, ob es ein Import ist, der wirklich Daten in einer DataTable liefert,
/// Oder ob es rein irgendeine Aktion (FTP Download, eMail, etc.) ist, die ausgeführt werden soll.
/// Bei zuvor genannten "Importen" muss hier "false" zurückgegeben werden.
/// </summary>
public bool HasDataForImport
{
get
{
return true;
}
}
/// <summary>
/// Log-Infos
/// </summary>
public string Log
{
get
{
return "Test Log";
}
}
/// <summary>
/// Gibt an, ob es minestens einen Fehler im GetData gab.
/// </summary>
public bool HasError
{
get
{
return false;
}
}
/// <summary>
/// Gibt einen Fehlertext an.
/// </summary>
public string ErrorText
{
get
{
return "";
}
}
#endregion
#region Methoden
/// <summary>
/// Liefert Daten im DataTable für die Preview/Mapping/etc.
/// </summary>
/// <param name="file"></param>
/// <param name="configData"></param>
/// <param name="p_nCounterImport"></param>
/// <param name="p_nCounterRow"></param>
/// <returns></returns>
public DataTable GetDataPreview(string file, string configData, ref int p_nCounterImport, ref int p_nCounterRow)
{
return GetData(file, configData, ref p_nCounterImport, ref p_nCounterRow);
}
/// <summary>
/// Liefert Daten im DataTable für den wirklichen Import
/// </summary>
/// <param name="file"></param>
/// <param name="configData"></param>
/// <param name="p_nCounterImport"></param>
/// <param name="p_nCounterRow"></param>
/// <returns></returns>
public DataTable GetData(string file, string configData, ref int p_nCounterImport, ref int p_nCounterRow)
{
DataTable dt = new DataTable("TestTable");
DataColumn column;
DataRow row;
p_nCounterImport = 1;
p_nCounterRow = 1;
// Create new DataColumn, set DataType,
// ColumnName and add to DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.Caption = "id";
column.ReadOnly = true;
column.Unique = true;
// Add the column to the table.
dt.Columns.Add(column);
// Create second column.
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Value";
column.AutoIncrement = false;
column.Caption = "Value";
column.ReadOnly = false;
column.Unique = false;
// Add the column to the table.
dt.Columns.Add(column);
for (int i = 0; i <= 2; i++)
{
row = dt.NewRow();
row["id"] = i;
row["Value"] = "Value " + i;
dt.Rows.Add(row);
}
return dt;
}
/// <summary>
/// Liefert einen String mit Konfigurations-Daten
/// </summary>
/// <param name="configData"></param>
/// <returns></returns>
public bool GetConfiguration(ref string configData)
{
dlgConfig dlg = new dlgConfig(configData);
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
configData = dlg.ConfigData;
return true;
}
return false;
}
/// <summary>
/// Wird aufgerufen, wenn der Import durchgeführt wurde
/// </summary>
/// <param name="file"></param>
/// <param name="configData"></param>
/// <param name="success"></param>
/// <param name="logtext"></param>
/// <returns></returns>
public bool SetResponse(string file, string configData, bool success, string logtext)
{
return true;
}
#endregion
}
}